Gezocht op internet, maar de oplossing niet gevonden, dus hier volgt mijn vraag ...
Ik weet hoe een Word macro aangeroepen moet worden vanuit VB.NET, namelijk als volgt:
Visual Basic:
1
2
3
4
5
6
7
| Public Sub processWordDoc(file as String)
Dim wordApp as New Word.Application
Dim wordDoc as Word.Document
wordDoc = wordApp.Documents.Open(FileName := file)
wordApp.Run("mijnMacro")
End Sub |
Probleem: ik wil een aantal documenten verwerken en een macro aanroepen als dit document de macro bevat. Niet ieder document zal de macro bevatten, gevolg: een Exception treed op. Ik kan natuurlijk een Try / Catch om de macro aanroep functie plaatsen, maar dat is een 'smerige' oplossing.
Ik wil weten of het mogelijk is (wellicht via Reflection o.i.d.?) om een lijstje te krijgen van alle macro's die zich in een document bevinden en alleen macro's uitvoeren als ze onderdeel zijn van een bepaalde module, als dat mogelijk is.
Nog 1 opmerking: het is geen oplossing voor me om de code van een macro in mijn VB.NET applicatie te verwerken, omdat niet ieder document de macro moet uitvoeren. Tevens is het voor de eindgebruiker veel flexibeler als code per definitie wordt uitgevoerd als het onderdeel is van een bepaalde module, omdat ze dan zelf code kunnen schrijven en ik niet elke keer een update hoef te maken van mijn applicatie.
Weet iemand een oplossing voor dit probleem?
Microsoft Windows: A thirty-two bit extension and graphical shell to a sixteen-bit patch to an eight-bit operating system originally coded for a four-bit microprocessor which was written by a two-bit company that can't stand one bit of competition.