Função CreateObject

Aplica-se A
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Nota

A função, método, objeto ou propriedade descrita neste tópico será desativada se o Serviço Microsoft Jet Expression estiver em execução no modo sandbox, o que impede a avaliação de expressões potencialmente não seguras. Para obter mais informações sobre o modo sandbox, pesquise "modo sandbox" na Ajuda.

Cria e devolve uma referência a um objeto ActiveX.

Sintaxe

CreateObject(class [, servername] )

A sintaxe da função CreateObject tem estes argumentos:

Argumento Descrição
classe Obrigatório. Variant (String). O nome do aplicativo e a classe do objeto a ser criado.
nome de servidor Opcional. Variant (String). O nome do servidor de rede onde o objeto será criado. Se servername for uma cadeia de caracteres vazia (""), o computador local será usado.

    

O argumento classusa a sintaxe appname.objecttype e tem estas partes:

Parte Descrição
appname Obrigatório. Variant (String). O nome do aplicativo que fornece o objeto.
tipo de objeto Obrigatório. Variant (String). O tipo ou classe de objeto a ser criado.

    

Observações

Cada aplicativo que suporta automação fornece pelo menos um tipo de objeto. Por exemplo, um aplicativo de processamento de texto pode fornecer um objeto Application , um objeto Document e um objeto Toolbar .

Para criar um objeto ActiveX, atribua o objeto retornado por CreateObject a uma variável de objeto:

Nota

Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

Neste exemplo, iremos automatizar um objeto de folha de cálculo do Excel a partir de uma base de dados do Access. Esse código inicia o aplicativo que está criando o objeto, neste caso, uma planilha do Microsoft Excel. Depois que um objeto é criado, você faz referência a ele no código usando a variável de objeto que você definiu. No exemplo a seguir, você acessa propriedades e métodos do novo objeto usando a variável ExcelSheetde objeto , e outros objetos do Excel, incluindo o Application objeto e a Cells coleção.

' 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

Declarar uma variável de objeto com a As Object cláusula cria uma variável que pode conter uma referência a qualquer tipo de objeto. No entanto, o acesso ao objeto através dessa variável é ligado tardiamente; ou seja, a ligação ocorre quando o programa é executado. Para criar uma variável de objeto que resulta em ligação antecipada, ou seja, ligação quando o programa é compilado, declare a variável de objeto com um ID de classe específico. Por exemplo, pode declarar e criar as seguintes referências do Excel:

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)

A referência através de uma variável de ligação antecipada pode dar melhor desempenho, mas só pode conter uma referência à classe especificada na declaração.

Você pode passar um objeto retornado pela função CreateObject para uma função esperando um objeto como um argumento. Por exemplo, o código a seguir cria e passa uma referência para um objeto Excel.Application:

Call MySub (CreateObject("Excel.Application"))

Você pode criar um objeto em um computador remoto em rede passando o nome do computador para o argumento servername de CreateObject. Esse nome é o mesmo que a parte Nome da Máquina do nome de um compartilhamento: para um compartilhamento chamado "\\MyServer\Public", o nome do servidor é "MyServer".

Nota

Consulte a documentação COM (consulte Microsoft Developer Network) para obter informações adicionais sobre como tornar um aplicativo visível em um computador remoto em rede. Poderá ter de adicionar uma chave de registo à sua aplicação.

O código a seguir retorna o número de versão de uma instância do Excel em execução em um computador remoto chamado MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Se o servidor remoto não existir ou estiver indisponível, ocorre um erro em tempo de execução.

Nota

Use CreateObject quando não houver nenhuma instância atual do objeto. Se uma instância do objeto já estiver em execução, uma nova instância será iniciada e um objeto do tipo especificado será criado. Para usar a instância atual ou para iniciar o aplicativo e fazer com que ele carregue um arquivo, use a função GetObject .

Se um objeto tiver se registrado como um objeto de instância única, apenas uma instância do objeto será criada, não importa quantas vezes CreateObject seja executado.

Exemplo

Este exemplo usa a função CreateObject para definir uma referência (

xlApp

) para Excel. Ele usa a referência para acessar a propriedade Visible do Excel e, em seguida, usa o método Quit do Excel para fechá-la. Por fim, é liberada a referência em si.

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.