2010-06-09 29 views
6

Est-il possible de déterminer par programme si un fichier .xls contient des macros, sans pour autant l'ouvrir dans Excel?Déterminer par programme si un fichier Excel (.xls) contient des macros

Existe-t-il des méthodes pour examiner quel certificat (y compris le certificat timestamp) avec lequel ces macros sont signées? Encore sans utiliser Excel.

Je me demande en particulier s'il y a des chaînes qui apparaissent toujours dans les données brutes d'un fichier Excel lorsque des macros sont présentes.

+0

Est-ce un xls ou xlsx? –

+0

Ce serait pour un fichier XLS –

Répondre

1

Oui, vous pouvez ouvrir le fichier .xls comme fichier de document composé et vérifiez s'il contient un dossier VBA et des flux contenant du code VBA.

Exemple de code est disponible dans cet article CodeProject:

Another OLE Doc Viewer but with editing facility

Les informations de certificat est stocké dans le DocumentSummaryInformation flux. Si vous voulez lire les informations à partir de là, vous devriez creuser dans les spécifications du format de fichier disponible à partir de Microsoft:

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

[MS-OFFCRYPTO]: Office Document Cryptography Structure Specification

+0

Merci, c'est encore mieux que ce à quoi je m'attendais, je n'avais aucune idée que les formats de fichiers étaient disponibles publiquement! –

0

Un fichier xls contenant une macro doit contenir une chose à la recherche de chaîne comme

Keyboard Shortcut: 

Je ne sais pas si cela est une solution infaillible si

+0

Non, cela n'a pas fonctionné pour moi. –