Função CreateObject

Nota: Queremos fornecer-lhe os conteúdos de ajuda mais recentes o mais rapidamente possível e no seu idioma. Esta página foi traduzida automaticamente e pode conter erros gramaticais ou imprecisões. O nosso objetivo é que estes conteúdos lhe sejam úteis. Pode informar-nos se as informações foram úteis no final desta página? Eis o artigo em inglês para referência.

Nota: A função, o método, o objeto ou a propriedade descrito neste tópico estão desativados se o serviço de expressões do Microsoft Jet estiver a ser executado no modo sandbox, o que impede a avaliação de expressões potencialmente não seguras. 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 [, nome_do_servidor] )

A sintaxe da função CreateObject tem os seguintes argumentos:

Argumento

Descrição

classe

Obrigatório. Variante (Cadeia). O nome da aplicação e a turma do objeto a criar.

ServerName

Opcional. Variante (Cadeia). O nome do servidor de rede onde o objeto será criado. Se nomedoservidor for uma cadeia vazia (""), o computador local é utilizado.


A turmaargumento utiliza a sintaxe AppName.objecttype e tem as seguintes partes:

Parte

Descrição

AppName

Obrigatório. Variante (Cadeia). O nome da aplicação que fornece o objeto.

ObjectType

Obrigatório. Variante (Cadeia). O tipo ou classe do 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 texto pode fornecer um objeto de aplicação , um objeto de documento e um objeto de 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, iremos 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 que cria o objeto, neste caso, uma folha de cálculo do Microsoft Excel. Depois de criar um objeto, pode referenciá-lo no código com a variável de objeto que definiu. No exemplo seguinte, o utilizador acessa as propriedades e métodos do novo objeto utilizando a variável de objeto, o 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 para qualquer tipo de objeto. No entanto, o acesso ao objeto através dessa variável é de ligação tardia; ou seja, a ligação ocorre quando o seu programa é executado. Para criar uma variável de objeto que resulta numa ligação inicial, ou seja, associar 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 de ligação anterior pode fornecer um desempenho melhor, mas só pode conter uma referência para o classe especificado no declaração.

Pode passar um objeto devolvido pela função CreateObject para uma função a esperar um objeto como argumento. Por exemplo, o seguinte código cria e passa uma referência para um objeto Excel. Application:

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

Pode criar um objeto num computador remoto da rede ao transmitir o nome do computador para o argumento ServerName de CreateObject. Esse nome é igual ao nome do computador de um nome de partilha: para uma partilha com o nome "\\MyServer\Public," nomedoservidor é "meuservidor".

Nota:  Consulte a documentação COM (consulte Microsoft Developer Network) para obter informações adicionais sobre como tornar uma aplicação visível num computador remoto de rede. 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 que está a ser executada 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, ocorrerá um erro em tempo de execução.

Nota:  Utilize o CreateObject quando não existir uma instância atual do objeto. Se uma instância do objeto já estiver em execução, será iniciada uma nova instância e será criado um objeto do tipo especificado. Para utilizar a instância atual ou para iniciar a aplicação e fazer com que a mesma carregue um ficheiro, utilize a função GetObject.

Se um objeto tiver sido registrado como um objeto de instância única, apenas é criada uma instância do objeto, independentemente de quantas vezes o 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 visível do Excel e, em seguida, utiliza o método Quit do Excel para a fechar. Por fim, a referência é lançada em si.

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.
Aumente os seus conhecimentos do Office
Explore as formações
Seja o primeiro a obter novas funcionalidades
Adira ao Office Insider