Come si usa CreateObject("Excel.Application")?
Come si usa CreateObject("Excel.Application")?
Ciao,
CreateObject crea un ActiveX, della classe specificata.
Se imposti una reference alla libreria di excel
(Microsoft Excel 9.0 Object Library),
il setup della tua applicazione si "porta dietro" questa libreria e da codice puoi semplicemente scrivere:
Dim xlsAPP As New Excel.Application
per creare un'istanza dell'applicazione Excel.
Se invece non imposti un riferimento alla Ms Excel Object Library, puoi creare istanze di Excel utilizzando CreateObject.
Il primo sistema viene chiamato Early Binding (associazione
anticipata), mentre il secondo Late Binding, ossia associazione tardiva...
...associazione alla libreria cui fai riferimento.
Con il Late Binding ottieni maggiore leggerezza nel setup
del tuo applicativo ma, per contro, non hai la certezza che
il tuo codice funzioni su ogni macchina.
Con questo metodo, infatti, la libreria non viene registrata durante il setup della tua applicazione, quindi
creataObject riuscirà ad istanziare Excel solamente nel caso in cui, sulla macchina del cliente sia effettivamente installato Excel... in caso contrario ERRORE !
Altri inconvenienti del Late Binding sono:
- usi oggetti generici
quindi non puoi usufruire dell'Intelli Sense che mostra proprietà e metodi quando scrivi "nomeoggetto.proprietà"
- non puoi "sentire" gli eventi della classe in quanto non puoi scrivere
Dim WithEvents Ogg As Object
Se non puoi impostare un reference alla libreria e intendi usare il Late Binding, devi assegnare il risultato di CreateObject as un'oggetto:
Dim xlsAPP
Set xlsAPP = CreateObject("Excel.Application")
poi rendi visibile l'istanza di Excel:
xlsAPP.Visible = True
quando vuoi terminare Excel, chiami il metodo Quit dell'oggetto Application e distruggi l'oggetto:
xlsApp.Quit
Set xlsApp = Nothing
Per fare le prove ti conviene usare il metodo Early Binding.
Almeno avrai a disposizione nell'Object Browser di VB tutte
le proprietà e i metodi dell'oggetto.
Ciao
Simo