Je reçois occasionnellement un fichier xls qui contient une macro que je devrais utiliser. Si je n'ai pas une confiance totale en l'expéditeur, je souhaite regarder la source de la macro afin de vérifier qu'elle ne fait bien que ce qu'elle est censée faire.
Cependant, dans Excel 2010, le bouton "modifier" sous "Afficher les macros" est désactivé, sauf si j'active d'abord les macros pour la feuille - mais si j'active d'abord les macros, je ne peux, au plus, découvrir des codes malveillants qu'une fois ce code terminé. fonctionnement...
Comment puis-je afficher la source de la macro avant d'activer les macros pour le document?
Alt
+F11
peut entraîner la! SECURITY WARNING ... Enable Content
disparition de la bannière " ", ce qui implique que l'exécution du code est désormais activée. C'est trompeur. Vous pouvez le démontrer en créant un document avec unon_open()
module. Vous pourrezAlt
+ entrerF11
et inspecter le code sans déclencher l'événement.Bien que les réponses de Mokubai et hBy2Py semblent excellentes et vous permettent en effet d'afficher l'éditeur VBA, il semble qu'au moins dans Excel à partir de Microsoft Office Professional Plus 2016 ne vous laisse toujours pas afficher le code.
Il se trouve que je possède cette version et j'étais sûr d'avoir reçu un XLS malveillant et je voulais l'inspecter. Après l'avoir ouvert dans Excel, il s'est ouvert en mode sans échec comme d'habitude et bien sûr, je n'avais aucune intention de rejeter ce mode. Lorsque j'ai ouvert VBA Editor comme d'autres répondants l'ont indiqué, on m'a présenté ... VBA Editor vide . Le panneau "Explorateur de projets" affiche utilement "Aucun projet ouvert" bien que je n'aie pas encore fermé le fichier XLS. Juste pour le plaisir de tester, j'ai ouvert un deuxième document (un de mes travaux) et il est immédiatement apparu dans VBA Editor et était (correctement) totalement dépourvu de VBA. Cependant, le document provenant d'Internet n'était pas répertorié dans l'éditeur VBA .
J'ai perdu un peu de temps à essayer de comprendre pourquoi, et je n'ai trouvé aucune raison. Il semble que mon édition Excel n'envoie tout simplement pas de modules VBA à l'éditeur VBA lorsque le document est chargé en mode sans échec. Malheureusement, VBA Editor n'a pas de fonctionnalité "VBA ouvert depuis Office Document", il est donc clair qu'Excel est le cerveau ici et qu'il doit décompresser / décoder / quel que soit le XLS en premier.
La solution s'est avérée assez simple.
Ribbon
->Developer
->MacroSecurity
File
->Options
->SecurityCenter
(dernier groupe d'options) ->Settings
->Macros
)Effets:
Au cas où vous seriez curieux: oui, c'était en effet malveillant, petit exemple:
BTW. comme vous pouvez le voir, j'ai immédiatement commenté le point d'entrée et réenregistré le document, au cas où j'autoriserais les macros à s'exécuter à un moment donné plus tard.
la source