Come suggerisce il nome, la funzione CreateObject viene utilizzata per creare oggetti.
Ma perché usiamo il metodo o la funzione CreateObject se possiamo creare direttamente un oggetto usando la nuova parola chiave?
Bene, questa è una domanda valida e abbiamo una risposta adeguata.
Viene chiamata la creazione di un oggetto utilizzando CreateObject Rilegatura tardiva. Nel binding tardivo la creazione degli oggetti avviene durante il runtime. Non ha bisogno di riferimenti da aggiungere. Questo rende il codice VBA portabile.
Ad esempio, se crei un'applicazione che si occupa di altre applicazioni e utilizzi rilegatura anticipata aggiungendo riferimenti e usando il nuovo parola chiave. Successivamente trasferirai quel codice su un'altra macchina, quindi dovrai aggiungere i riferimenti anche su quella macchina. Ma se hai usato il metodo CreateObject per creare altri oggetti dell'applicazione, non avrai bisogno di aggiungere i riferimenti su altre macchine, nel caso trasferisci o condividi il codice.
In questo articolo impareremo a conoscere il metodo CreateObject usando alcuni esempi.
Sintassi della funzione CreateObject:
Imposta nome_oggetto= CreateObject(nomeclasse come stringa,[nomeserver]) |
nomeclasse come stringa: È una variabile richiesta. È una stringa che fa riferimento al nome dell'applicazione e al tipo di oggetto. Il nome dell'applicazione e la classe dell'oggetto da creare devono essere dichiarati in AppName.ObjecType. Ad esempio, se voglio un oggetto di Word Application, scrivo "Word.Application". Lo vedremo in dettaglio negli esempi più avanti.
[nome del server]: È una variabile facoltativa. È una stringa del nome del server di rete in cui verrà creato l'oggetto. Se nomeserver è una stringa vuota (""), viene utilizzata la macchina locale. Non lo useremo in questo capitolo.
Ora che conosciamo le basi della funzione CreateObject usiamole in alcuni esempi:
Esempio 1: aprire l'applicazione Microsoft Word utilizzando Excel VBA
Quindi, se volessimo utilizzare l'associazione anticipata, aggiungeremmo riferimenti alle applicazioni di parole utilizzando il menu Strumenti-->Riferimenti.
E il nostro codice sarebbe simile a questo.
Sub OpenWordApp() Dim wordApp As New Word.Application Dim wordDoc As Document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
Il vantaggio di questo codice, che ottieni l'assistenza dell'intelligenza di VBA e ti mostra il metodo e le proprietà disponibili dell'oggetto che hai creato. Funzionerà perfettamente nel tuo sistema. Ma se condividi questo codice con qualcun altro e non hanno aggiunto il riferimento alla libreria di parole di Microsoft dagli strumenti, otterranno un errore.
Per evitare questo errore, utilizzare il codice seguente.
Sub OpenWordApp() Dim wordApp As Object Imposta wordApp = CreateObject("Word.Application") Dim wordDoc As Object wordApp.Visible = True Imposta wordDoc = wordApp.Documents.Add End Sub
Il codice sopra funzionerà perfettamente su qualsiasi macchina. È portatile poiché stiamo eseguendo l'associazione tardiva utilizzando il metodo CreateObject per creare l'oggetto.
Vediamo un altro esempio:
Esempio 2: creare un oggetto cartella di lavoro utilizzando la funzione CreaOggetto
Se stai lavorando con VBA per un certo periodo di tempo, devi aver creato o aggiunto cartelle di lavoro utilizzando la parola chiave Nuovo. In questo esempio, lo faremo usando CreateObject.
Sub addSheet() ' Dichiara una variabile oggetto per contenere l' oggetto ' riferimento. Dim as Object causa un'associazione tardiva. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ' Rende Excel visibile tramite l'oggetto Application. ExcelSheet.Application.Visible = True ' Posiziona del testo nella prima cella del foglio. ExcelSheet.Application.Cells(1, 1).Value = "Questa è la colonna A, riga 1" ' Salva il foglio nella directory C:\test.xls. ExcelSheet.SaveAs "C:\TEST.XLS" ' Chiude Excel con il metodo Quit sull'oggetto Application. ExcelSheet.Application.Quit ' Rilascia la variabile oggetto. Imposta ExcelSheet = Niente End Sub
Quindi sì ragazzi, ecco come usate il metodo CreateObject in VBA. Discutiamo i vantaggi e le carenze di esso.
Vantaggi di CreateObject per creare Object
Il vantaggio principale di CreateObject è che rende il tuo codice portabile (quando la creazione dell'oggetto è la preoccupazione). Puoi condividere il codice con chiunque senza preoccuparti se ha aggiunto il riferimento al programma oggetto utilizzando o meno.
Difetto di CreateObject
Le carenze del metodo CreateObject sono:
Devi conoscere la struttura della Classe che utilizzerai per la creazione dell'oggetto.
Una volta creato l'oggetto, dipendi totalmente dalla tua memoria per i metodi e le proprietà degli oggetti, poiché VBA non fornisce alcun intellisense per aiutarti.
Possiamo superare le carenze di cui sopra. Ho un trucco.
Ogni volta che scrivo codice che verrà condiviso con altri, utilizzo il primo metodo per creare oggetti (Aggiunta di riferimenti dagli strumenti). Questo mi aiuta a scrivere il codice più velocemente. Una volta terminato il programma VBA e averlo testato, sostituisco il metodo New con il metodo CreateObject. Questo rende il codice portabile. Puoi usare questo trucco.
Quindi sì ragazzi, ecco come potete usare la funzione CreateObject per creare oggetti in VBA. Spero di essere riuscito a spiegare tutto. Se hai domande su questo articolo o su qualsiasi altra domanda relativa a VBA, chiedimi nella sezione commenti qui sotto.
Iniziare con i moduli utente VBA di Excel| Spiegherò come creare un modulo in excel, come utilizzare il toolbox VBA, come gestire gli input dell'utente e infine come archiviare gli input dell'utente. Esamineremo questi argomenti utilizzando un esempio e una guida passo passo.
Variabili VBA in Excel| VBA sta per Visual Basic for Applications. È un linguaggio di programmazione di Microsoft. Viene utilizzato con applicazioni Microsoft Office come MSExcel, MS-Word e MS-Access mentre le variabili VBA sono parole chiave specifiche.
Ambito variabile VBA di Excel| In tutti i linguaggi di programmazione, abbiamo identificatori di accesso alle variabili che definiscono da dove è possibile accedere a una variabile definita. Excel VBA non fa eccezione. Anche VBA ha identificatori di ambito.
Argomenti ByRef e ByVal | Quando un argomento viene passato come argomento ByRef a una sub o funzione diversa, viene inviato il riferimento della variabile effettiva. Qualsiasi modifica apportata alla copia della variabile si rifletterà nell'argomento originale.
Elimina i fogli senza richieste di conferma utilizzando VBA in Microsoft Excel | Poiché stai eliminando i fogli utilizzando VBA, sai cosa stai facendo. Vorresti dire a Excel di non mostrare questo avviso ed eliminare il dannato foglio.
Aggiungi e salva una nuova cartella di lavoro utilizzando VBA in Microsoft Excel 2016| In questo codice, abbiamo prima creato un riferimento a un oggetto cartella di lavoro. E poi lo abbiamo inizializzato con un nuovo oggetto cartella di lavoro. Il vantaggio di questo approccio è che puoi eseguire facilmente le operazioni su questa nuova cartella di lavoro. Come salvare, chiudere, eliminare, ecc
Visualizza un messaggio sulla barra di stato VBA di Excel| La barra di stato in Excel può essere utilizzata come monitor del codice. Quando il tuo codice VBA è lungo e svolgi diverse attività utilizzando VBA, spesso disabiliti l'aggiornamento dello schermo in modo da non vedere lo sfarfallio dello schermo.
Disattiva i messaggi di avviso utilizzando VBA in Microsoft Excel 2016| Questo codice non solo disabilita gli avvisi VBA, ma aumenta anche l'efficienza temporale del codice. Vediamo come.
Articoli popolari:
50 scorciatoie di Excel per aumentare la produttività | Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.
La funzione CERCA.VERT in Excel | Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare il valore da diversi intervalli e fogli.
CONTA.SE in Excel 2016 | Conta i valori con le condizioni usando questa fantastica funzione. Non è necessario filtrare i dati per contare valori specifici. La funzione Countif è essenziale per preparare la tua dashboard.
Come utilizzare la funzione SOMMA.SE in Excel | Questa è un'altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche.