Funzione CreateObject

Si applica a
Access per Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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'argomento classusa la sintassi nomeapp.tipooggetto ed è costituito dalle parti seguenti:

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 ExcelSheetoggetto , e altri oggetti di Excel, tra cui l'oggetto Application e la Cells raccolta.

' 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 As Object clausola 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. Questo 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.