2010-06-09 34 views
6

Có cách nào để lập trình xác định xem một .xls có chứa macro không thực sự mở nó trong Excel không?Xác định theo Lập trình Nếu Tệp Excel (.xls) Chứa Macro

Ngoài ra có phương pháp nào để kiểm tra chứng chỉ nào (bao gồm cả dấu thời gian) các macro này được ký kết không? Một lần nữa mà không cần sử dụng Excel.

Tôi tự hỏi đặc biệt nếu có bất kỳ chuỗi nào luôn hiển thị trong dữ liệu thô của tệp Excel khi có macro.

+0

Đây có phải là một xls hay xlsx? –

+0

Điều này sẽ dành cho một tệp XLS –

Trả lời

1

Vâng, bạn có thể mở tập tin .xls như một tệp tài liệu ghép và kiểm tra xem có chứa một thư mục VBA và các luồng có chứa mã VBA hay không.

Mẫu mã có sẵn trong bài viết này CodeProject:

Another OLE Doc Viewer but with editing facility

Thông tin chứng chỉ được lưu trữ trong DocumentSummaryInformation suối. Nếu bạn muốn đọc các thông tin từ đó bạn nên thâm nhập vào các thông số kỹ thuật định dạng tập tin có sẵn từ Microsoft:

[MS-OSHARED]: Office Common Data Types and Objects Structure Specification

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification

+0

Cảm ơn, điều đó thậm chí còn tốt hơn tôi mong đợi, tôi không biết các định dạng tệp có sẵn công khai như thế nào! –

0

Hồ xls chứa macro nên chứa một chuỗi tìm kiếm cái gì đó như

Keyboard Shortcut: 

Không biết nếu điều này là một giải pháp chắc chắn thành mặc dù

+0

Không, điều đó không có tác dụng đối với tôi. –

Các vấn đề liên quan