2010-09-23 24 views
2

J'ai un problème vraiment ennuyeux. Je suis en train d'ouvrir un document Word via C#/COM Interop (Word 2007). Je veux empêcher les macros de fonctionner car certaines d'entre elles peuvent planter (les anciens fichiers avec des signets manquants, etc.).Comment supprimer la boîte de dialogue VIsual Basic "Macros are Disabled" qui s'affiche lors de l'ouverture d'un document Word en C#

J'exécutez le code suivant pour supprimer toutes les boîtes de dialogue qui peuvent apparaître jusqu'à:

Word.ApplicationClass wordApplication = new Word.ApplicationClass(); 

wordApplication.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone; 

wordApplication.ShowVisualBasicEditor = false; 

wordApplication.AutomationSecurity = 
    Microsoft.Office.Core.MsoAutomationSecurity.msoAutomationSecurityForceDisable; 

Word.Document wordDoc = null; 

Quand je puis exécutez le code suivant, je reçois le message « Les macros de ce projet sont désactivées ».

wordDoc = wordApplication.Documents.Open(
       ref paramSourceDocPath, ref paramMissing, ref paramMissing, 
       ref paramMissing, ref paramMissing, ref paramMissing, 
       ref paramMissing, ref paramMissing, ref paramMissing, 
       ref paramMissing, ref paramMissing, ref paramMissing, 
       ref paramMissing, ref paramMissing, ref paramMissing, 
       ref paramMissing); 

J'ai besoin de supprimer ce message soit, dettect si elle est affichée et « ok » ou trouver un moyen de disableing macros de démarrage sans VB obtenir de la manière.

Des idées?

+0

Je voulais juste faire un suivi pour voir si le ci-dessous répond à votre question. –

Répondre

-1

This article pourrait aider. Je ne sais pas comment vous le traduiriez en C#.

code VBA:

WordBasic.DisableAutoMacros 1 ' Disables auto macros 
WordBasic.DisableAutoMacros 0 ' Enables auto macros 

Je ne sais pas si cela désactive le message "Les macros de ce projet sont désactivées".

1

Je n'aurais jamais pu obtenir ça avec C#, mais avec VB.NET ça allait. Voici comment le faire: How to open document that contains AutoOpen macro with PowerShell?

+0

Todd, ça fait quelques années depuis cette réponse. Y a-t-il quelque chose de nouveau que vous connaissez qui fonctionnerait en C#? – arbitrarystringofletters

+0

@arbitrarystringofletters Malheureusement, non. La programmation Office continue de fonctionner mieux/plus facilement pour VB/VBA. Je suppose que C# obtient toute la gloire partout ailleurs, mais dans Office, VB.NET est toujours en règle. –

+0

Très bien, merci pour la mise à jour. – arbitrarystringofletters