Funzione CreateObject in VBA
Gli oggetti sono concetti molto importanti nella codifica VBA e comprendere che il modello di lavoro di un oggetto è piuttosto complesso. Quando facciamo riferimento agli oggetti nella codifica VBA, lo facciamo in due modi, ovvero "Early Binding" e "Late Binding". "Early Binding" è il processo di impostazione del riferimento all'oggetto dalla libreria dei riferimenti del VBA, e quando inviamo il file a qualcun altro, richiedono anche di impostare il riferimento a quei rispettivi oggetti. Tuttavia, "Late Binding" non richiede all'utente di impostare alcun riferimento a un oggetto perché, nella codifica del late binding, impostiamo il riferimento al rispettivo oggetto utilizzando la funzione VBA "CreateObject".
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba_.png.webp)
Cos'è CreateObject in Excel VBA?
"Crea oggetto", come dice il nome stesso, creerà l'oggetto menzionato da Excel VBA. Pertanto, la funzione Crea oggetto restituisce il riferimento a un oggetto avviato da un componente Active X.
Di seguito è riportata la sintassi della funzione CreateObject in VBA
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__2.png.webp)
- Classe: il nome dell'oggetto che stiamo cercando di avviare e impostare il riferimento alla variabile.
- (Nome server): questo è un parametro facoltativo; se ignorato, utilizzerà solo la macchina locale.
Esempio di funzione Crea oggetto in Excel VBA
Di seguito sono riportati gli esempi di VBA CreateObject.
Esempio 1
Ora vedremo come avviare l'applicazione PowerPoint da Excel utilizzando la funzione CreateObject in VBA. Apri il file excel e vai alla finestra dell'editor di Visual Basic premendo il tasto ALT + F11 .
Codice:
Sub CreateObject_Example1 () End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__3.png.webp)
Dichiarare la variabile come PowerPoint.Application.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__4.png.webp)
Come puoi vedere sopra, quando iniziamo a digitare la parola "PowerPoint", non vediamo alcun elenco IntelliSense che mostra le ricerche correlate. Questo perché "PowerPoint" è un oggetto esterno. Ma niente di cui preoccuparsi dichiarare la variabile come "Object".
Codice:
Sub CreateObject_Example1 () Dim PPT As Object End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__5.png.webp)
Poiché abbiamo dichiarato la variabile come "Object", dobbiamo impostare il riferimento all'oggetto utilizzando la parola chiave "Set". Inserendo la parola chiave "Set", menzionare la variabile e inserire un segno di uguale.
Codice:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__6.png.webp)
Ora apri la funzione CreateObject.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__7.png.webp)
Poiché stiamo facendo riferimento all'oggetto esterno di "PowerPoint" per il parametro "Class" della funzione Crea oggetto, menzionare il nome dell'oggetto esterno tra virgolette doppie come "PowerPoint.Application".
Codice:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__8.png.webp)
Ora la funzione Crea oggetto avvierà l'applicazione PowerPoint. Una volta avviato l'oggetto, dobbiamo renderlo visibile utilizzando il nome della variabile.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__9.png.webp)
Uno dei problemi con il metodo Create Object o il metodo di associazione tardiva è che non possiamo vedere l'elenco IntelliSense in quel momento. Devi essere assolutamente sicuro del codice che stai scrivendo.
Per la variabile "PPT", utilizza la proprietà "Visible" e imposta lo stato su "True".
Codice:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__10.png.webp)
Per aggiungere una diapositiva a PPT, definire il codice VBA della riga sottostante.
Codice:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Add End Sub
Ora esegui il codice manualmente o tramite il tasto F5 e vedi che si apre l'applicazione “PowerPoint”.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__11.png.webp)
Una volta abilitata l'applicazione PowerPoint utilizzando la variabile "PPT", possiamo iniziare ad accedere all'applicazione PowerPoint.
Esempio n. 2
Ora vedremo come avviare un'applicazione Excel utilizzando la funzione CreateObject in VBA. Ancora una volta, dichiara la variabile come "Object".
Codice:
Sub CreateObject_Example2 () Dim ExcelSheet As Object End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__12.png.webp)
The moment we declare the variable as an object, it causes late binding, and we need to use the “Set” keyword to set the reference for the required object.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__13.png.webp)
Since we are referencing to excel worksheet from the application excel, enter “Excel. Sheet” in double-quotes.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__14.png.webp)
Once the reference for the excel sheet is set, we need to make it visible to use it. This is similar to how we made the PowerPoint application visible.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__15.png.webp)
Now it will activate the excel worksheet.
Similarly, to initiate an excel workbook from other Microsoft products, we can use the below code.
Code:
Sub CreateObject_Example3 () Dim ExlWb As Object Set ExlWb = CreateObject ("Excel.Application") ExlWb.Application.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__16.png.webp)
Cose da ricordare su CreateObject in VBA
- In VBA, la funzione CreateObject viene utilizzata per fare riferimento agli oggetti.
- La funzione Crea oggetto causa un processo di associazione tardiva.
- Utilizzando la funzione crea oggetto, non possiamo accedere all'elenco IntelliSense di VBA.