2010-03-02 18 views
7

Ho bisogno di utilizzare lo spazio dei nomi Microsoft.Office.Interop.Word per estrarre se un documento di Word contiene macro e quali. La documentazione MSDN per questo spazio dei nomi non fornisce molte informazioni rispetto alla documentazione su altre classi .Net. Dove posso trovare maggiori informazioni su questo spazio dei nomi (esempi, documentazione completa, ecc.). Ho già cercato su Google e SO, ma non ho avuto molte informazioni.Documentazione Microsoft.Office.Interop.Word

+0

Quale versione di Office? –

+0

@ rold2007: volevo solo controllare per vedere se la risposta qui sotto risponde alla tua domanda. –

+0

@Otaku: Le tre risposte finora sono interessanti, ma lo sviluppo di questa applicazione non è ancora iniziato, quindi non posso dire se ciò che ho bisogno di sviluppare è fattibile o meno. Pubblicherò di nuovo qui quando i miei test saranno fatti. – rold2007

risposta

0

Microsoft.Vbe.Interop è lo spazio dei nomi per il VBA. (VBE è Visual Basic per Extensibility dell'applicazione 5.3.) Le parole chiave per la ricerca sono VBProject, VBComponent e CodeModule.

MSDN Search for VBProject consente di iniziare. http://social.msdn.microsoft.com/Search/en-US?query=VBProject&ac=8.

Il seguente articolo è per VBA, ma è facilmente convertibile. WD2000: Macro di esempio per restituire macro e nomi di procedure a http://support.microsoft.com/kb/262961.

+0

Aspettarsi un'eccezione "L'accesso programmatico a Visual Basic Project non è considerato affidabile." quando provi questo Google il messaggio di errore per ulteriori informazioni. (Troverai anche qualcuno che sta cercando di fare la tua stessa cosa!) – MZB

+0

Puoi cambiarlo con la protezione macro nella scheda "Editori attendibili". Inoltre, l'aggiunta di un certificato al progetto con le corrette impostazioni di sicurezza delle macro ignorerà questo messaggio. – AMissico

-1

La maggior parte della documentazione si trova nel file della guida VBA fornito con Microsoft Word - per Microsoft Word 2003 cercare un file VBAWD10.CHM. Controllare anche Microsoft Office Visual Basic Riferimento (VBAOF11.CHM)

10 e 11 in quanto sopra sono Word e Office numeri di versione - così il vostro chilometraggio può variare in base alla quale versione di Word è stato installato. Inoltre, la denominazione non è coerente in tutte le versioni di Word, quindi una ricerca di tutto ciò che VBA * .CHM probabilmente aprirà la maggior parte della documentazione necessaria.

Questi risponderanno alla maggior parte delle vostre domande sull'API di Word.

Impossibile vedere un modo ovvio per trovare l'elenco di macro in un documento o modello aperto, tuttavia ... Si prega di aggiungere un commento a questa risposta se si trova un metodo, come sarei interessato a sapere .

(Si noti che ogni chiamata può generare un'eccezione quando si utilizza l'interoperabilità di Word. Se la finestra di dialogo modale è aperta a , verrà visualizzata un'eccezione, ad esempio.

+0

@unknown - Se hai intenzione di esprimere un voto negativo, sarebbe utile un indizio sul perché la risposta non sia stata utile. (Avendo fatto qualcosa di molto simile a @ rold2007 e ho cercato la stessa documentazione, sarei interessato a sapere se c'è una migliore fonte di informazioni). – MZB

+0

Come suggerisce @AMissico, la proprietà Application.VBE potrebbe essere il posto dove guardare. – MZB

+0

Solo un'ipotesi, in quanto vi è una sola risposta a questa domanda. Immagino che il voto negativo sia dovuto al fatto che si fa riferimento ai riferimenti del modello a oggetti di Office e Word e non ai riferimenti VBA/VBE. Inoltre, forse perché si fa riferimento a VBA anziché a uno spazio dei nomi .NET. – AMissico

3

La risposta corretta è verificare la proprietà Document.HasVBProject.

Per citare dalla sezione Note: "Questa proprietà è molto utile per determinare a livello di programmazione se un documento deve essere salvato in un formato di file abilitato per macro Se salvato in un altro formato, macro e progetti di codice contenuti nel documento possono essere perso."