Nota: A função, método, objeto ou propriedade descrita neste tópico está 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 inseguras. Para obter mais informações sobre o modo sandbox, procure "modo sandbox" na Ajuda.
Cria e devolve uma referência a um objeto ActiveX.
Sintaxe
CreateObject ( classe [, servername] )
A sintaxe da função CreateObject tem estes argumentos:
Argumento |
Descrição |
classe |
Obrigatório. Variante (Cadeia). O nome da aplicação e a classe do objeto a criar. |
nome do servidor |
Opcional. Variante (Cadeia). O nome do servidor de rede onde o objeto será criado. Se servername for uma cadeia vazia (""), será utilizado o computador local. |
A classeargumento utiliza o nome de aplicação de sintaxe.objecttype e tem as seguintes partes:
Parte |
Descrição |
nome da aplicação |
Obrigatório. Variante (Cadeia). O nome da aplicação que fornece o objeto. |
objecttype |
Obrigatório. Variante (Cadeia). O tipo ou classe de objeto a criar. |
Observações
Todas as aplicações que suportam a automatização fornecem, pelo menos, um tipo de objeto. Por exemplo, uma aplicação de processamento de palavras pode fornecer um objeto Aplicação , um objeto Documento e um objeto da Barra de Ferramentas .
Para criar um objeto ActiveX, atribua o objeto devolvido por CreateObject a um 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, vamos automatizar um objeto de folha de cálculo do Excel a partir de uma base de dados do Access. Este código inicia a aplicação ao criar o objeto, neste caso, uma folha de cálculo do Microsoft Excel. Assim que um objeto é criado, pode referenciá-lo no código com a variável de objeto que definiu. No exemplo seguinte, pode aceder às propriedades e métodos do novo objeto com a variável de objeto, ExcelSheete outros objetos do Excel, incluindo o objeto Application e a coleção de 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 através dessa variável está atrasado; ou seja, o enlace ocorre quando o programa é executado. Para criar uma variável de objeto que resulta num enlace antecipado, ou seja, enlace 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 vinculada antecipada pode proporcionar um melhor desempenho, mas só pode conter uma referência ao classe especificado no declaração.
Pode transmitir um objeto devolvido pela função CreateObject para uma função que espera um objeto como argumento. Por exemplo, o código seguinte cria e transmite uma referência a um objeto Excel.Application:
Call MySub (CreateObject("Excel.Application"))
Pode criar um objeto num computador em rede remota ao transmitir o nome do computador para o argumento servername de CreateObject. Esse nome é o mesmo que a parte Nome do Computador de um nome de partilha: para uma partilha chamada "\\MyServer\Public", o nome do servidor é "MyServer".
Nota: Veja a documentação com (consulte Microsoft Developer Network) para obter informações adicionais sobre como tornar uma aplicação visível num computador de rede remota. Poderá ter de adicionar uma chave de registo para a sua aplicação.
O código seguinte devolve o número da versão de uma instância do Excel em execução num computador remoto com o nome 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 de tempo de execução.
Nota: Utilize CreateObject quando não existir nenhuma instância atual do objeto. Se uma instância do objeto já estiver em execução, é iniciada uma nova instância e é criado um objeto do tipo especificado. Para utilizar a instância atual ou para iniciar a aplicação e fazer com que carregue um ficheiro, utilize a função GetObject .
Se um objeto se tiver registado como um objeto de instância única, só é criada uma instância do objeto, independentemente do número de vezes que CreateObject é executado.
Exemplo
Este exemplo utiliza a função CreateObject para definir uma referência (
xlApp
) para o Excel. Utiliza a referência para aceder à propriedade Visible do Excel e, em seguida, utiliza o método Sair do Excel para fechá-la. Por fim, a própria referência é 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.