Observação: A função, método, objeto ou propriedade descrita neste tópico será desabilitada se o Serviço de Expressão de Jato da Microsoft 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 de área restrita, procure por "modo de área restrita" na Ajuda.
Cria e retorna uma referência a um objeto ActiveX.
Sintaxe
CreateObject ( class [, servername] )
A sintaxe da função CreateObject tem esses 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. |
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 dá 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 VBA (Visual Basic for Applications). 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. Esse código inicia o aplicativo criando o objeto, nesse caso, uma planilha do Microsoft Excel. Depois que um objeto for criado, você o referencia em 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 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 está associado tardiamente; ou seja, a associação ocorre quando seu programa é executado. Para criar uma variável de objeto que resulta em associação inicial, 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 limite inicial pode fornecer melhor desempenho, mas só pode conter uma referência ao classe especificado no 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 de rede remota passando o nome do computador para o argumento nome do servidor de CreateObject. Esse nome é o mesmo que a parte Nome do Computador 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 de rede remota. Talvez seja necessário adicionar uma chave de 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 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 o Excel. Ele usa a referência para acessar a propriedade Visible do Excel e, em seguida, usa o método Excel Quit para fechá-la. 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.