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

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

Sintaxe

CreateObject ( classe [, nomedo servidor] )

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.

servername

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.


A classeargumento usa o nome do aplicativo de sintaxe.objecttype e tem estas partes:

Parte

Descrição

appname

Obrigatório. Variant (String). O nome do aplicativo que fornece o objeto.

objecttype

Obrigatório. Variant (String). O tipo ou classe do objeto a ser criado.


Comentários

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

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

Observação: Exemplos a seguir demonstram o uso dessa função em um módulo Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na listada ao lado de Pesquisar e insira 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, automatizamos um objeto de planilha do Excel de dentro de um banco de dados do Access. Este código inicia o aplicativo criando o objeto, nesse caso, uma planilha do Microsoft Excel. Depois que um objeto for criado, você o referencia no código usando a variável de objeto definida. No exemplo a seguir, você acessa propriedades e métodos do novo objeto usando a variável de objeto, ExcelSheete outros objetos do Excel, incluindo o objeto Application e a coleção 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

Declarar uma variável de objeto com a cláusula As Object cria uma variável que pode conter uma referência a qualquer tipo de objeto. No entanto, o acesso ao objeto por meio dessa variável é vinculado tardiamente; ou seja, a associação ocorre quando o programa é executado. Para criar uma variável de objeto que resulta em associação inicial, ou seja, vinculação quando o programa é compilado, declare a variável de objeto com uma ID de classe específica. Por exemplo, você 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 por meio de uma variável vinculada ao início pode dar um melhor desempenho, mas só pode conter uma referência à classe especificada no 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 a um objeto Excel.Application:

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

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

Observação:  Consulte a documentação COM (consulte Microsoft Developer Network) para obter informações adicionais sobre como tornar um aplicativo visível em um computador em rede remota. Talvez seja preciso adicionar uma chave do Registro para seu aplicativo.

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, ocorrerá um erro em tempo de executar.

Observação:  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 usa o método Excel Quit para a fechar. 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.
xlApp.Quit ' When you finish, use the Quit method to close
Set xlApp = Nothing ' the application, then release the reference.

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade da tradução?

O que afetou sua experiência?

Algum comentário adicional? (Opcional)

Obrigado por seus comentários!

×