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 restrita, o que impede a avaliação de expressões potencialmente inseguras. Para obter mais informações sobre o modo sandbox, pesquise "modo sandbox" na Ajuda.
Cria e retorna 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. |
| servername | Opcional. Variant (String). O nome do servidor de rede em que o objeto será criado. Se servername for uma cadeia de caracteres vazia (""), o computador local será usado. |
O argumento de classeusa a sintaxe appname.objecttype e tem estas partes:
| Parte | Descrição |
|---|---|
| Nome do aplicativo | Obrigatório. Variant (String). O nome do aplicativo que fornece o objeto. |
| objecttype | Obrigatório. Variant (String). O tipo ou a classe de objeto a ser criado. |
Comentários
Cada aplicativo compatível com 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:
Observação
Os exemplos a seguir demonstram o uso dessa função em um módulo do Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do desenvolvedor na lista suspensa 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, automatizaremos um objeto de planilha do Excel de dentro de um banco de dados do Access. Este código inicia a aplicação criando o objeto, neste caso, uma planilha do Microsoft Excel. Depois que um objeto é criado, você o referencia no código usando a variável de objeto definida. No exemplo a seguir, você acessa as propriedades e os métodos do novo objeto usando a variável de objeto, ExcelSheet, 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 por meio dessa variável é associado tardiamente; Ou seja, a associação ocorre quando o programa é executado. Para criar uma variável de objeto que resulte em associação antecipada, ou seja, associaçã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 de associação antecipada pode fornecer 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 que espera um objeto como 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 do Computador de um nome de compartilhamento: para um compartilhamento chamado "\\MyServer\Public", servername é "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 remoto. Talvez seja necessário 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 não estiver disponível, ocorrerá um erro em tempo de execução.
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 se registrou como um objeto de instância única, apenas uma instância do objeto é criada, não importa quantas vezes CreateObject seja executado.
Exemplo
Este exemplo usa a função CreateObject para definir uma referência (
xlApp
) para o 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. Finalmente, a referência em si é liberada.
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.