Nota: La funzione, il metodo, la proprietà o l'oggetto descritto in questo argomento è disabilitato se Microsoft Jet Expression Service è in esecuzione in modalità sandbox, che impedisce la valutazione delle espressioni potenzialmente pericolose. Per altre informazioni sulla modalità sandbox, cercare "modalità sandbox" nella Guida.
Crea e restituisce un riferimento a un oggetto ActiveX.
Sintassi
CreateObject ( classe [, nomeserver] )
La sintassi della funzione CreateObject ha gli argomenti seguenti:
Argomento |
Descrizione |
classe |
Obbligatorio. Variant (String). Nome dell'applicazione e classe dell'oggetto da creare. |
nomeserver |
Facoltativo. Variant (String). Nome del server di rete in cui verrà creato l'oggetto. Se nomeserver è una stringa vuota (""), viene usato il computer locale. |
L'argomentoclasse usa la sintassi nomeapp.tipooggetto ed è costituito da queste parti:
Parte |
Descrizione |
nomeapplicazione |
Obbligatorio. Variant (String). Nome dell'applicazione che fornisce l'oggetto. |
tipooggetto |
Obbligatorio. Variant (String). Tipo o classe dell'oggetto da creare. |
Osservazioni
Tutte le applicazioni che supportano l'automazione forniscono almeno un tipo di oggetto. Un'applicazione di elaborazione di testo può ad esempio fornire un oggetto Application, un oggetto Document e un oggetto Toolbar.
Per creare un oggetto ActiveX, assegnare l'oggetto restituito da CreateObject a una variabile oggetto:
Nota: Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.
' Declare an object variable to hold the object
' reference. Dim as Object causes late binding. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet")
In questo esempio automatizzeremo un oggetto foglio di calcolo di Excel da un database di Access. Questo codice avvia l'applicazione creando l'oggetto, in questo caso, un foglio di calcolo di Microsoft Excel. Una volta creato un oggetto, è possibile farvi riferimento nel codice usando la variabile oggetto definita. Nell'esempio seguente si accede alle proprietà e ai metodi del nuovo oggetto usando la variabile oggetto, ExcelSheet, e altri oggetti di Excel, tra cui l'oggetto Application e la raccolta Cells.
' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True ' Place some text in the first cell of the sheet. ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1" ' Save the sheet to C:\test.xls directory. ExcelSheet.SaveAs "C:\TEST.XLS" ' Close Excel with the Quit method on the Application object. ExcelSheet.Application.Quit ' Release the object variable. Set ExcelSheet = Nothing
La dichiarazione di una variabile oggetto con la clausola As Object crea una variabile che può contenere un riferimento a qualsiasi tipo di oggetto. L'accesso all'oggetto tramite la variabile prevede tuttavia un'associazione tardiva, ovvero l'associazione si verifica quando si esegue il programma. Per creare una variabile oggetto che genera un'associazione anticipata, ovvero un'associazione che si verifica quando si compila il programma, dichiarare la variabile oggetto con un ID classe specifico. È ad esempio possibile dichiarare e creare i riferimenti di Excel seguenti:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook Dim xlSheet As Excel.WorkSheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1)
Il riferimento tramite una variabile con associazione anticipata può offrire prestazioni migliori, ma può contenere solo un riferimento alla classe specificata nella dichiarazione.
È possibile passare un oggetto restituito dalla funzione CreateObject a una funzione che prevede un oggetto come argomento. Il codice seguente, ad esempio, crea e passa un riferimento a un oggetto Excel.Application:
Call MySub (CreateObject("Excel.Application"))
È possibile creare un oggetto in un computer di rete remoto passando il nome del computer all'argomento nomeserver di CreateObject. Tale nome corrisponde alla parte Nome computer di un nome di condivisione: per una condivisione denominata "\\MyServer\Public", nomeserver è "MyServer".
Nota: Fare riferimento alla documentazione COM (vedere Microsoft Developer Network) per altre informazioni su come rendere visibile un'applicazione in un computer di rete remoto. Può essere necessario aggiungere una chiave del Registro di sistema per l'applicazione.
Il codice seguente restituisce il numero di versione di un'istanza di Excel in esecuzione in un computer remoto denominato MyServer:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer") Debug.Print xlApp.Version
Se il server remoto non esiste o non è disponibile, viene generato un errore di run-time.
Nota: Usare CreateObject quando non c'è un'istanza corrente dell'oggetto. Se un'istanza dell'oggetto è già in esecuzione, viene avviata una nuova istanza e viene creato un oggetto del tipo specificato. Per usare l'istanza corrente oppure per avviare l'applicazione e fare in modo che carichi un file, usare la funzione GetObject.
Se un oggetto ha registrato se stesso come oggetto a singola istanza, viene creata una sola istanza dell'oggetto, indipendentemente dal numero di volte per cui viene eseguita la funzione CreateObject.
Esempio
Questo esempio usa la funzione GetObject per impostare un riferimento (
xlApp
) a Excel. Il riferimento viene usato per accedere alla proprietà Visible di Excel e quindi viene usato il metodo Quit di Excel per chiuderla. Infine, il riferimento viene rilasciato.
Dim xlApp As Object ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application") ' You may have to set Visible property to True ' if you want to see the application. xlApp.Visible = True ' Use xlApp to access Microsoft Excel's ' other objects. xlApp.Quit ' When you finish, use the Quit method to close Set xlApp = Nothing ' the application, then release the reference.