Early Binding vs Late Binding
Info
Esempi
Linguaggio
Librerie
Formule
Ultimi Inseriti

 Login

 Password

Per potr controllare applicazioni esterne (ad esempio: Word, Access,Outlook) utilizzando delle istruzioni in VBA dobbiamo utilizzare l'interfaccia OLE che rendono disponibili.
Per avviare la connessione ad un altro programma è necessario creare un collegamento alle classi di oggetti dell'applicazione, per fare questo esistono 2 modetodi: sono chiamati associazione anticipata (Early Binding) o associazione tardiva (Late Binding).
Vediamo come si possono implementare e i loro vantaggi e svantaggi.


Early Binding
E' il metodo più semplice per chi è alle prime armi o per chi vuole svlipppare una macro solo per sé e non ha la necessità di distribuirla ad altri.
Dobbiamo prima di tutto creare il collegamento alla librerie del programma, le troviamo nel menù:
Strumenti --> Riferimenti; ad esempio, per utilizzare word, dovremmo selezionare Micorsoft Word xx Object Library

Fatto questo possiamo inserire un oggetto Word all'interno del nostro codicie, in questo modo:
Dim wdApp As New Word.Application
Set wdApp = New Word.Application
wdApp.Workbooks.Open "...NomeFile.doc"

I vantaggi di questo metodo sono:
  1. avere, quando scriviamo il codice il suggerimento all'elenco di metodi, proprietà ed eventi dell'oggetto;
  2. accedere alle costanti;
  3. utilizzre gli eventi;
  4. accedere all'help, se presente nella libreria;
  5. normalmente una maggior velocità di esecuzione perchè e tutto compilato in anticipo.

Svantaggi
Lo svantaggo principale è che è dipendente dalla versione delle libraria utilizzata, ovvero su di un diverso pc potrebbe non essere presente o esserlo in una versione differente dando problemi di compatibilità.
Questo è il motivo per cui chi sviluppa del codice VBA per poi distribuirlo in fase di sviluppo utilizza questo metodo per poi modificare la parte di codice per creare gli oggetti utilizzado il Late Binding, spiegato qui sotto.



Late Binding
In questo caso non faremo rifermento esplicito ad una libreria, ma in sostanza lasceremo l'autonomia al sistema di cercare il riferimento al più recente server OLE di automazione; è il motivo per cui è leggermente più lento in esecuzione.

Per poter creare un oggetto (word in questo esempio) scriveremo:
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
wdApp.Workbooks.Open "...NomeFile.xls"
oppure per acededere al programma, se è già in esecuzione, scriveremo:
Dim wdApp As Object
Set wdApp = GetObject("..NomeFile.xls")

Vantaggi:
Il principale vantaggio, come dicevamno, è che il codice, non richiedendo riferimenti fissi, può funzionare su qualsiasi PC anche se vi sono predenti versioni differente delle librerie dell'oggetto utilizzato.

Svantaggi:
  1. NON avere, quando scriviamo il codice il suggerimento all'elenco di metodi, proprietà ed eventi dell'oggetto;
  2. NON poter accedere alle costanti;
  3. NON poter utilizzre gli eventi;
  4. normalmente una minor velocità di esecuzione;
  • NON poter accedere all'help, se presente nella libreria. per questo il metodo è meno adatto a chi è alle "prime armi" con la scrittura di codice VBA
  •  

    data4idea srls - PIva 01881000937 - info@data4idea.it