Como usar o Visual Basic .NET para ligação para servidores de automação do Office

O suporte para o Office 2003 terminou

A Microsoft terminou o suporte para o Office 2003 em 8 de abril de 2014. Esta alteração afetou as suas atualizações de software e opções de segurança. Saiba o que isto significa para você e como permanecer protegido.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 304661
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Para obter uma Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 302902.

NESTA TAREFA

Sumário
Quando você automatizar um aplicativo como um Microsoft Office aplicativo, as chamadas para as propriedades e métodos do escritório objetos do aplicativo devem estar conectados de alguma forma a esses objetos. O processo de propriedade de conexão e chamadas de método para os objetos que implementam as propriedades e métodos normalmente é chamado ligação . No Visual Basic. NET, os dois tipos de ligação que estão disponíveis são vinculação antecipada e vinculação posterior . O tipo de ligação escolhido pode afetar muitos aspectos do seu programa, incluindo desempenho, flexibilidade e capacidade de manutenção.

Este artigo passo a passo explica e compara ligação antecipada e atrasada para clientes de automação do Visual Basic .NET e oferece exemplos de código que demonstram os dois tipos de ligação.

back to the top

Vinculação antecipada

Com a vinculação antecipada, Visual Basic .NET usa informações de tipo que está disponíveis sobre o aplicativo do Office em questão vincular diretamente aos métodos ou propriedades que ele precisa usar. O compilador pode executar o tipo e sintaxe verifica para garantir que o número correto e o tipo de parâmetros são passados para o método ou propriedade e que o valor retornado será do tipo esperado. Como menos trabalho é necessário em tempo de execução para fazer uma chamada a uma propriedade ou método, vinculação antecipada, às vezes, é mais rápida; no entanto, embora enlace pode ser mais rápido, desempenho diferenças quando comparado a ligação tardia são geralmente insignificante.

Vinculação antecipada tem a desvantagem secundária que ele pode introduzir problemas de compatibilidade de versão possíveis. Por exemplo, suponha que um servidor de automação, como o Microsoft Excel 2002 apresenta um novo método ou propriedade que não está disponível no Excel 2000 ou faz uma alteração a uma propriedade existente ou método. Essas alterações podem alterar o layout binário do objeto e causar problemas com um aplicativo Visual Basic .NET que usa as informações de tipo do Excel 2002 para automatizar Excel 2000. Para evitar esse problema com o enlace inicial, geralmente, é recomendável que você use o tipo de informação para a versão mais antiga do aplicativo do Office que você deseja dar suporte ao desenvolver e testar seu cliente de automação.

As etapas seguintes demonstram como criar um cliente de automação que usa a vinculação antecipada. Observe que, como as etapas ilustram, vinculação antecipada requer você fazer referência a biblioteca de tipos para o cliente de automação.

back to the top

Criar um cliente de automação que usa ligação antecipada

  1. Inicie o Microsoft Visual Studio NET.. No menu arquivo , clique em novo e, em seguida, clique em Project . Selecione os tipos de projetos do Visual Basic .NET Windows Application . O Form1 é criado por padrão.
  2. Adicione uma referência à Biblioteca de objetos do Microsoft Excel . Para fazer isso, execute as seguintes etapas:
    1. No menu Project , clique em Add Reference .
    2. Na guia COM , localize a Biblioteca de objetos do Microsoft Excel e, em seguida, clique em Selecionar .

      Observação O Office 2003 inclui assemblies de interoperabilidade primários (PIAs). O Office XP não inclui PIAs, mas podem ser baixados. Para obter informações adicionais sobre PIAs do Office XP, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
      328912INFO: Microsoft Office XP PIAs estão disponíveis para download
    3. Clique em OK na caixa de diálogo Add References para aceitar as seleções.
  3. No menu Exibir , selecione a caixa de ferramentas para exibir a caixa de ferramentas e adicione um botão ao Form1.
  4. Clique duas vezes em Button1 . A janela de código para o formulário é exibida.
  5. Na janela código, substitua o código a seguir
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickEnd Sub						
    com:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click	Dim objApp As Excel.Application        Dim objBook As Excel._Workbook        Dim objBooks As Excel.Workbooks        Dim objSheets As Excel.Sheets        Dim objSheet As Excel._Worksheet        Dim objRange As Excel.Range        ' Instantiate Excel and start a new workbook.        objApp = New Excel.Application()        objBooks = objApp.Workbooks        objBook = objBooks.Add        objSheets = objBook.Worksheets        objSheet = objSheets.Item(1)        objRange = objSheet.Range("A1")        'Set the range value.        objRange.Value(Excel.XlRangeValueDataType.xlRangeValueDefault) = "Hello, World!"        'Return control of Excel to the user.        objApp.Visible = True        objApp.UserControl = True    End Sub					
  6. Adicione a seguinte diretiva na parte superior da janela de código:
    	Imports Excel = Microsoft.Office.Interop.Excel 					
back to the top

Ligação atrasada

Em contraste com ligação inicial, a ligação tardia aguarda até que tempo de execução para vincular a propriedade e método chama a seus objetos. Para fazer isso, o objeto de destino deve implementar uma interface COM especial: IDispatch . O método IDispatch::GetIDsOfNames permite que o Visual Basic .NET interrogar um objeto sobre quais métodos e propriedades que ele oferece suporte, e o método de IDispatch:: Invoke permite que Visual Basic .NET chamar esses métodos e propriedades. Ligação tardia dessa maneira tem a vantagem de remover algumas das dependências versão inerentes com ligação inicial. Entretanto, a ligação tardia tem as desvantagens de remoção de verificações de tempo de compilação na integridade do código de automação, bem como não fornece recursos do IntelliSense que podem fornecer pistas para corrigir chamadas a métodos e propriedades.

Para usar a vinculação tardia no Visual Basic. NET, altere as declarações dos objetos no seu código de automação de seus tipos acoplados antecipados, como Excel.Application para objeto .

back to the top

Criar um cliente de automação que usa ligação atrasada

  1. Inicie o Microsoft Visual Studio NET.. No menu arquivo , clique em novo e, em seguida, clique em Project . Selecione os tipos de projetos do Visual Basic .NET Windows Application . O Form1 é criado por padrão.
  2. No menu Exibir , selecione a caixa de ferramentas para exibir a caixa de ferramentas e adicione um botão ao Form1.
  3. Clique duas vezes em Button1 . A janela de código para o formulário é exibida.
  4. Na janela código, substitua o código a seguir
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickEnd Sub						
    com:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click    Dim objApp As Object    Dim objBook As Object    Dim objBooks As Object    Dim objSheets As Object    Dim objSheet As Object    Dim range As Object    ' Instantiate Excel and start a new workbook.   objApp = CreateObject("Excel.Application")    objBooks = objApp.Workbooks    objBook = objBooks.Add    objSheets = objBook.Worksheets    objSheet = objSheets.Item(1)    range = objSheet.Range("A1")    'Set the range value.    range.Value = "Hello, World!"    'Return control of Excel to the user.    objApp.Visible = True    objApp.UserControl = TrueEnd Sub					
back to the top
Referências
Para obter mais informações, visite o seguinte site:
Microsoft Office Development com Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
Para obter informações adicionais sobre vinculação, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
245115INFO: Usando ligação antecipada e ligação tardia em automação
244167INFO: Texto clientes de automação para várias versões do Office
247579INFO: Use DISPID vinculação para automatizar aplicativos do Office sempre que possível
back to the top
ACC2003 XL2003 PPT2003 WD2003

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 304661 - Última Revisão: 12/06/2015 04:27:57 - Revisão: 8.4

Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Bibliotecas de Classes do Microsoft .NET Framework 1.0, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002 Standard Edition, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbpia kbhowtomaster KB304661 KbMtpt
Comentários