Tìm kiếm file có chưa Macro ? (1 người xem)

  • Thread starter Thread starter alohn
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

alohn

Thành viên chính thức
Tham gia
21/12/07
Bài viết
59
Được thích
13
Các bác cho em hỏi có câu lệnh vba nào để nhận biết một file có chứa Macro không ạ ?

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Nếu chỉ đơn thuần muốn biết 1 File có chứa Macro không thì có nhiều cách:
+ Cách 1: Mở File excel bất kì --> Tool--> Macro--> Security--> Medium. Nếu sau này khi mở 1 File Excel mà có chứa Macro nó sẽ hiện lên 1 bảng thông báo "Security Warning", còn không là không chứa Macro.
+ Cách 2: Mở File Excel cần kiểm tra--> Ấn tổ hợp phím ALT+F11--> Biết ngay!
 
Upvote 0
Vấn đề là mình muốn tìm kiếm tất cả các file excel có chứa macro trong một thư mục chỉ định. Nếu mở từng cái thì mỏi tay lắm :(

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Upvote 0
Vấn đề là mình muốn tìm kiếm tất cả các file excel có chứa macro trong một thư mục chỉ định. Nếu mở từng cái thì mỏi tay lắm :(

Phải công nhận dân ta có tật lười sợ mỏi tay. Đọc 10 bài có đến 9 viện cớ này.

Trong Excel 2007, mỗi file có cái thuộc tính tên là HasVBProject.

Excel 2003 không có thuộc tính đó cho nên phải dùng một thuộc tính khác
Mỗi workbook có cái thuộc tính VBProject.VBComponents (Collection)
Mỗi phần tử của VBComponents có cái thuộc tính CountOfLines
Đếm số CountOfLines thì biết file có code hay không.

Tuy nhiên, một số phần mềm chống vi rút hễ thấy file nào có nhắc tới VBProject thì nó cho là vi rút, và nó xoá đi. Dùng cái này bị hư file ráng chịu.
 
Upvote 0
Phải công nhận dân ta có tật lười sợ mỏi tay. Đọc 10 bài có đến 9 viện cớ này.

Trong Excel 2007, mỗi file có cái thuộc tính tên là HasVBProject.

Excel 2003 không có thuộc tính đó cho nên phải dùng một thuộc tính khác
Mỗi workbook có cái thuộc tính VBProject.VBComponents (Collection)
Mỗi phần tử của VBComponents có cái thuộc tính CountOfLines
Đếm số CountOfLines thì biết file có code hay không.

Tuy nhiên, một số phần mềm chống vi rút hễ thấy file nào có nhắc tới VBProject thì nó cho là vi rút, và nó xoá đi. Dùng cái này bị hư file ráng chịu.
Mong nhận được 1 ví dụ của Thầy Vietmini! Rất hâm mộ thầy!
 
Upvote 0
Mã:
[COLOR=#008000]' cái này gọi là compiler directives. Tôi thích dùng cái này. Nếu bạn không thích thì test Application.Version[/COLOR]
#Const XlVersion = 2007

Function Test4Code(wkb As Workbook) As Boolean
    ' returns true if wkb contains VBA code, false otherwise
#If XlVersion >= 2007 Then
    Test4Code = wkb.HasVBProject
#Else
    ' phần code này chôm ở đâu quên mất rồi, xin lỗi tác giả
    Dim obj As Object, iCount As Integer
    iCount = 0
    For Each obj In wkb.VBProject.VBComponents
        With obj.CodeModule
            '# lines - # declaration lines > 2 means we do have code
            iCount = iCount + ((.CountOfLines - .CountOfDeclarationLines) > 2)
        End With
        If iCount > 0 Then Exit For    'stop when 1st found
    Next obj
    Test4Code = CBool(iCount)
#End If
End Function

Lưu ý nếu muốn chạy code của 2003:
1. Cần phải đặt reference Microsoft Visual Basic for Application Extensibility 5.3
2. Cần phải vào Excel Trust Center mà tick "Trust access to VBA project object model"
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom