C'è una buona analisi a questo CodeProject http://www.codeproject.com/Articles/164036/Reflection-in-VBA-a-CreateObject-function-for-VBA
Estratto:
VBA non supporta riflessione, un concetto OOP che ha molti sfaccettature, tra cui la possibilità di creare un'istanza di una classe senza conoscendo il suo tipo in fase di progettazione. Reflection offre una grande flessibilità che è terribilmente assente da VBA (almeno per quelli di noi che amano usare VBA per più di quanto è in genere previsto).
ci sono alcune cose di riflessione come possibili:
Esempio
Per esempio, se ho voluto creare un'istanza di un oggetto Application di Excel senza dover dichiarare il tipo in modo esplicito nel codice (utilizzando Set xlApp = nuovo Excel.Application), posso farlo utilizzando il seguente livello di riflessione codice di creazione oggetto:
Dim xlApp As Excel.Application
Set xlApp = CreateObject(,"Excel.Application")
Questo è l'equivalente di tipo specifica scheda
Set xlApp = New Excel.Application
anche:
È possibile utilizzare assylias approccio per interrogare il proprio codice (utilizzando espressioni regolari o qualche altra analisi per individuare le parti del codice siete interessati a):
yourWorkbook.VBProject.VBComponents("MyModule").CodeModule
ci sono alcuni contatti interessanti in questo post: Iterating through the Object Browser in VBA
'yourWorkbook.VBProject.VBComponents (" MyModule "). CodeModule' dovrebbe darti accesso a ciò di cui hai bisogno. – assylias
@assylias mi sta dando l'intero codice sorgente, che non è eccezionale, ma potrebbe aiutare a risolvere il mio problema. Ne sei a conoscenza di uno che può darmi la funzione come oggetto (simile a C# o JavaScript)? – Adam
L'ho postato solo come commento perché manca di dettagli, ma pensarlo ti aiuterà a iniziare. Sono sicuro che qualcuno pubblicherà una risposta migliore più tardi. – assylias