Compartilhar via


CreateObject função (Visual Basic)

Cria e retorna uma referência a um objeto COM.CreateObject não pode ser usado para criar instâncias de classes no Visual Basic, a menos que essas classes são expostas explicitamente sistema autônomo componentes COM.

Public Shared Function CreateObject( _
   ByVal ProgId As String, _
   Optional ByVal ServerName As String = "" _
) As Object

Parâmetros

  • ProgId
    Obrigatório.String.A ID de programa do objeto para criar.

  • ServerName
    Opcional.String.O nome do servidor de rede em que o objeto será criado.If ServerNameé uma seqüência de caracteres vazia (""), o computador local é usado.

Exceções

Tipo de exceção

Número de erro

Condição

Exception

429

ProgId não foi encontrado ou não fornecido

- ou -

ServerName Falha de DnsValidateName função, provavelmente porque ele tem mais de 63 caracteres ou contenha um caractere inválido.

Exception

462

O servidor não disponível

FileNotFoundException

53

Nenhum objeto do tipo especificado existe

Ver a coluna " número de erro " se você estiver atualizando aplicativos Visual Basic 6.0 que usam manipulação de erros não estruturada.(Você pode comparar o número do erro com a Propriedade do Número (Erro de objeto).) Entretanto, quando for possivel, você pode considerar substituir tal controle de erro por Visão Geral sobre a Manipulação Estruturada de Exceções para o Visual Basic.

Comentários

Para criar uma instância de um componente COM, atribua o objeto retornado por CreateObject a uma variável de objeto:

Sub CreateADODB()
   Dim adoApp As Object
   adoApp = CreateObject("ADODB.Connection")
End Sub

O tipo de variável de objeto que você usa para armazenar o objeto retornado pode afetar o desempenho do aplicativo.Declarar uma variável de objeto com o 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 através dessa variável é ligação tardia, ou seja, a vinculação ocorre quando o programa é executado.Existem vários motivos, que você deve evitar associação tardia, incluindo desempenho do aplicativo mais lento.

Você pode criar uma variável de objeto que resulte em associação inicial — ou seja, vinculação quando o programa será compilado.Para fazer isso, adicione uma referência a biblioteca de tipos para seu objeto do COM Guia de do Adicionar referência caixa de diálogo sobre o Projeto menu.Em seguida, declare a variável de objeto do tipo específico de seu objeto.Na maioria dos casos, é mais eficiente usar o Dim demonstrativo e um assembly de interoperabilidade primário para criar objetos que usam o CreateObject função.

Interagindo com código não gerenciado

Outro problema é que objetos COM usam código não gerenciado — código sem o benefício do common linguagem tempo de execução.Existe um grau razoável de complexidade envolvida na combinação do código gerenciado do Visual Basic com código não gerenciado do COM.Quando você adicionar uma referência a um objeto COM, Visual Basic procura um assembly de interoperabilidade primário (PIA) para essa biblioteca; se ele encontrar um, e em seguida, usa-lo.Se ele não localizar um PIA, ele cria um assembly de interoperabilidade que contém classes de interoperabilidade local para cada classe de biblioteca COM.Para obter mais informações, consulte Interoperabilidade COM em aplicativos .NET estrutura.

Em geral, você deve usar objetos fortemente acoplados e assemblies de interoperabilidade primária sempre que possível.Os exemplos abaixo usam o CreateObject função com objetos do Microsoft Office somente para fins de demonstração. No entanto, esses objetos são mais fáceis de usar e mais confiável quando usado com o assembly de interoperabilidade primário apropriado.

Criando um objeto em um computador remoto

Você pode criar um objeto em um computador de rede remoto passando o nome do computador para o ServerName argumento das CreateObject função. Esse nome é o mesmo sistema autônomo a parte do nome do computador de um nome de compartilhamento: para um compartilhamento chamado "\\MyServer\Public",ServerNameé "MyServer".

Observação:

Consulte a documentação do COM (consulte a Microsoft Developer rede) para obter informações adicionais sobre como tornar um aplicativo uma acessível em um computador de rede remoto.Talvez seja necessário adicionar uma chave do registro para o seu aplicativo.

O código a seguir retorna o número da versão de uma instância do Excel em execução em um computador remoto denominado MyServer:

Sub CreateRemoteExcelObj()
    Dim xlApp As Object
    ' Replace string "\\MyServer" with name of the remote computer.
    xlApp = CreateObject("Excel.Application", "\\MyServer")
    MsgBox(xlApp.Version)
End Sub

Se o nome do servidor remoto estiver incorreto ou se ele não estiver disponível, ocorrerá um erro em time de execução.

Observação:

Uso CreateObject Quando não houver instância corrente do objeto. Se uma instância do objeto já está em execução, uma nova instância será iniciada e será criado um objeto do tipo especificado.Para usar a instância corrente, ou para iniciar o aplicativo e tê-lo a carregar um arquivo, use o GetObject função. Se um objeto tiver se auto-registrado sistema autônomo um objeto de instância única, apenas uma instância do objeto é criada, não importa quantas vezes CreateObject é executado.

Criando objetos de estrutura

Você pode usar o CreateObject somente para criar um objeto COM a função. Embora não haja nenhum mecanismo equivalente exato para criação de um objeto do .NET estrutura, a Activator no System namespace contém métodos para criar objetos locais ou remoto. Em particular, a CreateInstance método ou a CreateInstanceFrom método pode ser útil.

Observação de segurança:

O CreateObject função requer permissão do código não gerenciado, que poderá afetar sua execução em situações de confiança parcial. Para obter mais informações, consulte SecurityPermission e Permissões de acesso a código .

Exemplo

O exemplo a seguir utiliza o CreateObject função para criar uma planilha do Microsoft Excel e salva a planilha para um arquivo. Para usar esse exemplo, Excel deve estar instalado no computador onde este programa é executado.Além disso, você deve adicionar uma referência à biblioteca de tipos do COM Guia de do Adicionar referência caixa de diálogo sobre o Projeto menu.O nome da biblioteca de tipos varia dependendo da versão do Excel instalada em seu computador.Por exemplo, a biblioteca de tipos para o Microsoft Excel 2002 é denominada Biblioteca de objetos do Microsoft Excel 10.0.

Sub TestExcel()
    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet

    xlApp = CType(CreateObject("Excel.Application"), _
                Microsoft.Office.Interop.Excel.Application)
    xlBook = CType(xlApp.Workbooks.Add, _
                Microsoft.Office.Interop.Excel.Workbook)
    xlSheet = CType(xlBook.Worksheets(1), _
                Microsoft.Office.Interop.Excel.Worksheet)

    ' The following statement puts text in the second row of the sheet.
    xlSheet.Cells(2, 2) = "This is column B row 2"
    ' The following statement shows the sheet.
    xlSheet.Application.Visible = True
    ' The following statement saves the sheet to the C:\Test.xls directory.
    xlSheet.SaveAs("C:\Test.xls")
    ' Optionally, you can call xlApp.Quit to close the workbook.
End Sub

Anotações Developer Dispositivo Inteligente

Não há suporte para esta função.

Requisitos

Namespace: Microsoft.VisualBasic

Module: Interaction

Assembly: Visual Basic Runtime Library (em Microsoft.VisualBasic.dll)

Consulte também

Referência

Função GetObject (Visual Basic)

Instrução Dim (Visual Basic)

Instrução Declare

Exception

FileNotFoundException

Activator

CreateInstance

CreateInstanceFrom

Outros recursos

Interoperabilidade COM em aplicativos .NET estrutura

Interoperação com Código Não-Gerenciado