Funzione CreateObject

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

nomeapp

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")

Questo codice avvia l'applicazione creando l'oggetto, in questo caso, un foglio di calcolo di Microsoft Office Excel 2007. 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.
Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×