Função CreateObject

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

Sintaxe

CreateObject(classe, [ serverName ])


A sintaxe da função CreateObject tem estas partes:

Parte Descrição
classe Obrigatório; Variant (Cadeia). O nome do aplicativo e a classe do objeto a ser criado..
servername Opcional; Variant (Cadeia). O nome do servidor de rede onde o objeto será criado. Se o servername for uma cadeia de vazia (""), a máquina local será usada.

O argumento classe usa a sintaxe appname.objecttype e tem os seguintes partes:

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

Comentários

Cada aplicativo que oferece suporte a automação fornece pelo menos um tipo de objeto. Por exemplo, um aplicativo de processamento de palavras pode oferecer um objeto aplicativo, um objeto documento e um objeto barra de ferramentas.

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

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

Este código inicia o aplicativo criando o objeto, neste caso, uma planilha do Microsoft Excel. Depois que um objeto é criado, você faz referência ao 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 de objeto ExcelSheete outros objetos do Microsoft Excel, incluindo o Application objeto e o Cells conjunto.

' 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


Declarando uma variável de objeto com a cláusulaAs Object cria uma variável com referência a qualquer tipo de objeto. No entanto, o acesso ao objeto por meio dessa variável está atrasado; isto é, a associação ocorre quando o programa é executado. Para criar uma variável de objeto que resulte em uma associação inicial, isto é, vinculação quando o programa é compilado, declare a variável de objeto com um ID de classe específico. Por exemplo, você pode declarar e criar as seguintes referências no Microsoft 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 por meio de uma variável de ligação antecipada pode fornecer um melhor desempenho, mas pode conter apenas uma referência à classe especificada na declaração.

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

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

Você pode criar um objeto em um computador de remota passando o nome do computador para o argumento servername do CreateObject. Esse nome é igual a parte do nome do computador de um nome compartilhado; para o nome compartilhado "\MyServer\Public," o servername será "MyServer".

O código a seguir retorna o número de versão de uma instância do Excel 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 não estiver disponível, ocorre um erro de tempo de execução.

Observação

Use CreateObject quando não houver nenhuma instância atual do objeto. Se uma instância do objeto está sendo executada, uma nova instância é iniciada e um objeto do tipo especificado é 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 se registrou como um objeto de instância única, apenas uma instância do objeto é criada, independentemente de quantas vezes o CreateObject for executado.

Exemplo

Este exemplo usa a função CreateObject para definir uma referência (xlApp) para o Microsoft Excel. Ele usa a referência para acessar a propriedade Visível do Microsoft Excel e usa o método Microsoft Excel Sair para fechá-lo. Por fim, a referência em si é lançada.

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.
    ' Closes the application using the Quit method
xlApp.Quit    

Confira também

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.