Como usar o controle WebBrowser no Visual Basic para abrir um documento do Office

Support for Office 2003 has ended

Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software updates and security options. Learn what this means for you and how to stay protected.

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: 304643
Para obter um Microsoft Visual translation from VPE for Csharp 2005 e Microsoft Visual translation from VPE for Csharp .NET versão deste artigo, consulte 304662.
Sumário
Convém exibir ou incorporar, um documento do Microsoft Office diretamente em um formulário do Microsoft Visual Basic. O Microsoft Visual Basic 2005 e Visual Basic .NET não fornecem um controle OLE que permite que você incorpore um documento do Office em um formulário. Se você deseja incorporar um documento existente e abri-lo como um objeto de documento ActiveX no local em um formulário do Visual Basic, uma possível solução para você é usar o controle WebBrowser .

Este artigo demonstra como navegar para um documento do Office existente e exibi-la em um formulário do Visual Basic, usando o controle WebBrowser .
Mais Informações
Documentos ActiveX são objetos OLE Incorporável que se comportam mais como controles ActiveX que objetos OLE tradicionais. Diferentemente de um objeto incorporado tradicional, um documento ActiveX não foi projetado para ser um objeto contido em um documento maior. Em vez disso, ele é considerado por si só um documento completo simplesmente estiver sendo exibido (como com o Microsoft Internet Explorer) ou coletados em um único recurso com outros documentos (como um arquivo do Microsoft Office Binder). Um documento ActiveX que está hospedado no controle WebBrowser está sempre ativo; portanto, ao contrário de objetos OLE incorporado tradicionais, não é nenhuma noção de ativação in-loco.

Enquanto o Microsoft Visual Basic .NET e Visual Basic 2005 não têm suporte no momento para hospedagem ActiveX documentos diretamente, você pode usar o controle WebBrowser para essa finalidade. O controle WebBrowser (Shdocvw.dll) faz parte do Internet Explorer e só pode ser usado em sistemas com Internet Explorer instalada.

Criar um aplicativo do Visual Basic que abre documentos do Office

Para criar um aplicativo Visual Basic que abre o Office documentos, siga estas etapas:
  1. No Microsoft Visual Studio 2005 ou no Microsoft Visual Studio. NET, crie um projeto Windows Application usando Visual Basic .NET ou Visual Basic 2005. O Form1 é criado por padrão.
  2. No menu Ferramentas , clique em Customize ToolBox para abrir a caixa de diálogo Customize ToolBox . Na guia COM Components , adicione uma referência para o Microsoft WebBrowser . Clique em OK para adicionar o controle WebBrowser para caixa de ferramentas Windows Forms. O controle WebBrowser aparece com o Explorer do texto na caixa de ferramentas.

    Observação No Visual Studio 2005, não é necessário fazer a etapa 2.
  3. Usando a caixa de ferramentas, adicione um controle WebBrowser , um controle OpenFileDialog e um controle de botão ao Form1. Essa etapa adiciona a variável de membro AxWebBrowser1 , a variável de membro OpenFileDialog1 e a variável de membro Button1 para a classe Form1.
  4. Definir um membro particular na classe Form1 da seguinte maneira.
    Dim oDocument as Object
  5. Cole o seguinte código no class. Form1
    Private Sub Button1_Click(ByVal sender As System.Object, _   ByVal e As System.EventArgs) Handles Button1.Click    Dim strFileName As String    'Find the Office document.    With OpenFileDialog1        .FileName = ""        .ShowDialog()        strFileName = .FileName    End With    'If the user does not cancel, open the document.    If strFileName.Length Then        oDocument = Nothing        AxWebBrowser1.Navigate(strFileName)    End IfEnd SubPrivate Sub Form1_Load(ByVal sender As Object, ByVal e As _   System.EventArgs) Handles MyBase.Load    Button1.Text = "Browse"    With OpenFileDialog1        .Filter = "Office Documents " & _        "(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt"        .FilterIndex = 1    End WithEnd SubPrivate Sub Form1_Closing(ByVal sender As Object, ByVal e As _   System.ComponentModel.CancelEventArgs) Handles MyBase.Closing    oDocument = NothingEnd SubPrivate Sub AxWebBrowser1_NavigateComplete2(ByVal sender As Object, _   ByVal e As AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event) _   Handles AxWebBrowser1.NavigateComplete2    On Error Resume Next    oDocument = e.pDisp.Document    'Note: You can use the reference to the document object to    '      automate the document server.    MsgBox("File opened by: " & oDocument.Application.Name)End Sub					
    Observação você deve alterar o código no Visual Studio 2005. Por padrão, o Visual Basic adiciona um formulário para o projeto quando você cria um projeto Windows Forms. O formulário é denominado Form1. Os dois arquivos que representam o formulário são chamados de Form1.vb e Form1.designer.vb. Escreva o código de Form1.vb. O arquivo Form1.designer.vb é onde o Windows Forms Designer escreve o código que implementa todas as ações que você executou arrastando e soltando controles da caixa de ferramentas.
  6. Pressione F5 para executar o projeto. Quando você clicar em Procurar , caixa de diálogo Abrir é exibida e lhe permite procurar um arquivo Word, Excel ou PowerPoint. Selecione qualquer arquivo e clique em Abrir . O documento é aberto dentro do controle WebBrowser e uma caixa de mensagem exibe o nome do Office aparece de servidor do documento.

Considerações ao usar o controle WebBrowser

Você deve considerar o seguinte ao usar o controle WebBrowser :
  • O controle WebBrowser navega para documentos assincronamente. Quando chama WebBrowser1.Navigate , a chamada retorna controle para o Visual Basic aplicativo antes do documento foi completamente carregado. Se pretender automatizar o documento incluído, você precisará usar o evento NavigateComplete2 para ser notificado quando o documento foi carregado. Use a propriedade Document do objecto WebBrowser que é passado para obter uma referência para o Office documento objeto, que, no código anterior, é definido como oDocument .
  • O controle WebBrowser não dá suporte à mesclagem de menus.
  • Geralmente, o controle WebBrowser oculta quaisquer barras de ferramentas ancoradas antes de exibir um documento do Office. Você pode usar a automação para mostrar uma barra de ferramentas flutuante usando código, como a seguir.
    With oDocument.Application.CommandBars("Standard")   .Position = 4 '[msoBarFloating]   .Visible = TrueEnd With					
    versões mais recente do Internet Explorer (5.0 e posterior) também permitem que você exibir barras de ferramentas ancoradas usando o código a seguir.
    ' This is a toggle option, so call it once to show the ' toolbars and once to hide them. This works with Internet Explorer 5' but often fails to work properly with earlier versions...AxWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER)					
  • Existem vários problemas conhecidos com ter mais de um controle WebBrowser em um projeto e ter cada controle carregado com o mesmo tipo de documento do Office (ou seja, todos os documentos do Word ou todas as planilhas do Excel). É recomendável que você só usa um controle por projeto e navegue até um documento ao mesmo tempo.

    O problema mais comum é com Office barras de comando, que aparecem desabilitadas. Se você tiver dois controles de WebBrowser no mesmo formulário, que são carregados com o Word documentos e você tiver exibida barras de ferramentas usando uma das técnicas anteriores, apenas um conjunto de barras de ferramentas está ativo e funcionando corretamente. O outro está desativado e não pode ser usado.
  • Para limpar o WebBrowser do seu conteúdo atual, no evento Click de outro botão de comando (ou em outro local apropriado no seu código), navegue até a página em branco padrão usando o código a seguir:
       AxWebBrowser1.Navigate("about:blank")					

Considerações ao usar o controle WebBrowser juntamente com um programa do Microsoft Office de 2007

Por padrão, os programas do Office 2007 não abrem documentos do Office no navegador da Web. Esse comportamento também afeta o controle WebBrowser . É recomendável que você use um recipiente de documento ActiveX personalizado em vez do controle WebBrowser quando você desenvolve aplicativos que abra documentos do Office 2007. Para obter mais informações sobre recipientes de documento ActiveX personalizados, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
311765Controle ActiveX de C++ Visual para hospedar documentos do Office no Visual Basic ou HTML
Para aplicativos existentes que necessitam de compatibilidade com o controle WebBrowser , você pode modificar o registro para configurar o Internet Explorer. Você pode usar esse método para configurar o Internet Explorer para abrir documentos do Office 2007 no navegador da Web. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
927009Uma nova janela é aberta quando você tenta exibir um documento do programa Microsoft Office 2007 no Windows Internet Explorer 7
Observação Se você modificar o registro usando o método mencionado no artigo da Base de dados de Conhecimento da Microsoft 927009, as alterações afetarão o controle WebBrowser que você usa no aplicativo. As alterações também afetarão todas as instâncias do Internet Explorer. Além disso, esse método pode não funcionar para quaisquer versões futuras dos conjuntos Microsoft Office. Portanto, recomendamos que você use esse método somente para compatibilidade com um aplicativo existente.
Referências
Para obter mais informações sobre como usar o controle WebBrowser, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
304562Visual Studio 2005 e Visual Studio .NET não fornecem um controle de recipiente OLE para Windows Forms
243058Como usar o controle WebBrowser para abrir um documento do Office
162719Como usar o controle WebBrowser do Visual Basic 5.0
202476Erro: Não é possível editar documento do Word no controle OLE ou WebBrowser
188271Como imprimir o conteúdo do controle WebBrowser do VB
191692Shdocvw.dll não está incluído no pacote de instalação PDW
238313Acessando o modelo de objeto de documento do Internet Explorer a partir de Visual Basic
927009Uma nova janela é aberta quando você tenta exibir um documento do programa Microsoft Office 2007 no Windows Internet Explorer 7
Web navegador kbExcel kbPowerPt kbWord XL2003 WD2003 PPT2003

Propriedades

ID do Artigo: 304643 - Última Revisão: 09/16/2007 05:11:00 - Revisão: 8.1

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002 Standard Edition, Microsoft PowerPoint 2000 Standard Edition, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition

  • kbmt kbactivedocs kbautomation kbhowto kbwebbrowser KB304643 KbMtpt
Comentários