Jak używać formantu WebBrowser do otwierania dokumentów pakietu Office

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 243058 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

Podczas pracy z dokumentami pakietu Office konieczne może być wyświetlenie tych dokumentów bezpośrednio w programie Visual Basic bez tworzenia osadzonego obiektu OLE przy użyciu formantu kontenera OLE. Zamiast tego może zaistnieć potrzeba połączenia istniejącego dokumentu i otwarcia go jako obiektu dokumentu ActiveX w miejscu. Na szczęście formant Microsoft WebBrowser oferuje odpowiednie rozwiązanie.

W tym artykule przedstawiono sposób nawigacji do istniejącego dokumentu pakietu Office i wyświetlania go w programie Visual Basic przy użyciu formantu WebBrowser.

Więcej informacji

Dokumenty ActiveX są przystosowanymi do osadzania obiektami OLE, które zachowaniem bardziej przypominają formanty ActiveX niż tradycyjne obiekty OLE. W przeciwieństwie do zwykłego obiektu osadzonego dokument ActiveX nie jest przystosowany do umieszczania jako obiekt w większym dokumencie. Zamiast tego jest uznawany za kompletny dokument, który jest tylko wyświetlany przez przeglądarkę (taką jak program Internet Explorer) lub został zebrany w pojedynczym zasobie z innymi dokumentami (takim jak plik programu Binder).

Program Microsoft Visual Basic nie zapewnia aktualnie bezpośredniej obsługi dokumentów ActiveX, jednak można obejść to ograniczenie przy użyciu funkcji programu Internet Explorer i jego formantu WebBrowser. Formant WebBrowser (Shdocvw.dll) jest częścią programu Internet Explorer i może być używany tylko w systemach, w których jest zainstalowany program Internet Explorer.

Tworzenie aplikacji Visual Basic otwierającej dokumenty pakietu Office

Aby utworzyć aplikację Visual Basic otwierającą dokumenty pakietu Office, wykonaj następujące kroki:
  1. Uruchom program Visual Basic i utwórz nowy projekt Standard. Domyślnie zostanie utworzony formularz Form1.
  2. W menu Project (Projekt) wybierz polecenie Components (Składniki), aby otworzyć okno dialogowe Components. W oknie dialogowym Components (Składniki) dodaj odwołania do bibliotek Microsoft Common Dialog Control i Microsoft Internet Controls. Kliknij przycisk OK, aby dodać te elementy do przybornika.
  3. Dodaj wystąpienia formantów WebBrowser, CommonDialog i CommandButton do formularza Form1.
  4. Następnie dodaj następujący kod do okna kodu formularza Form1:
    Option Explicit
    
    Dim oDocument As Object
    
    Private Sub Command1_Click()
       Dim sFileName As String
       
     ' Find an Office file...
       With CommonDialog1
          .FileName = ""
          .ShowOpen
          sFileName = .FileName
       End With
       
     ' If the user didn't cancel, open the file...
       If Len(sFileName) Then
          Set oDocument = Nothing
          WebBrowser1.Navigate sFileName
       End If
    End Sub
    
    Private Sub Form_Load()
       Command1.Caption = "Browse"
       ' For the 2007 Microsoft Office documents, change the .Filter parameter of the 
       ' With CommonDialog1 statement to:
       ' .Filter = "Office Documents " & _
       '      "(*.docx, *.xlsx, *.pptx)|*.docx;*.xlsx;*.pptx"
       With CommonDialog1
          .Filter = "Office Documents " & _
          "(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt"
          .FilterIndex = 1
          .Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly
       End With
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
       Set oDocument = Nothing
    End Sub
    
    Private Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, _
    URL As Variant)
       On Error Resume Next
       Set oDocument = pDisp.Document
    
       MsgBox "File opened by: " & oDocument.Application.Name
    End Sub
    					
  5. Naciśnij klawisz F5, aby uruchomić projekt. Po wybraniu przycisku Browse (Przeglądaj) pojawia się okno dialogowe Open (Otwieranie) umożliwiające nawigację do pliku programu Word, Excel lub PowerPoint. Po wybraniu przycisku Open (Otwórz) dokument powinien zostać otwarty wewnątrz formantu WebBrowser. Następnie w oknie komunikatu jest wyświetlana nazwa aplikacji pakietu Office, która otworzyła dany plik.

Jakie czynniki należy rozważyć podczas korzystania z formantu WebBrowser w programach pakietu Microsoft Office 2007

Następujące czynniki należy rozważyć podczas korzystania z formantu WebBrowser:
  • Formant WebBrowser asynchronicznie nawiguje do dokumentów. Oznacza to, że podczas wywołania sterowanie jest zwracane do aplikacji Visual Basic przed całkowitym załadowaniem dokumentu. Dotyczy to wywołania metody WebBrowser1.Navigate. Jeżeli planujesz automatyzację umieszczonego dokumentu, użyj zdarzenia NavigateComplete2 w celu ustalenia, kiedy zakończono ładowanie dokumentu. Użyj właściwości Document obiektu WebBrowser w celu uzyskania odwołania do obiektu dokumentu pakietu Office. W poprzednim kodzie ustawiono odwołanie oDocument.
  • Kilka znanych problemów występuje wówczas, gdy w projekcie jest używanych kilka formantów WebBrowser ładowanych z tym samym typem dokumentu pakietu Office. Oznacza to, że każdy formant zawiera wszystkie dokumenty programu Word lub arkusze kalkulacyjne programu Excel. Firma Microsoft zaleca użycie tylko jednego formantu w każdym projekcie i przechodzenie kolejno do pojedynczych dokumentów.
  • Aby wyczyścić bieżącą zawartość z formantu WebBrowser, użyj następującego kodu w celu nawigacji do domyślnej pustej strony w zdarzeniu Click innego przycisku polecenia. Tę operację można również wykonać w innym odpowiednim miejscu kodu.
       WebBrowser1.Navigate "about:blank"
    					

Jakie czynniki należy rozważyć podczas korzystania z formantu WebBrowser w programach pakietu Microsoft Office 2003 i starszych wersjach pakietu Office

Następujące czynniki należy rozważyć podczas korzystania z formantu WebBrowser:
  • Formant WebBrowser nawiguje do dokumentów asynchronicznie. Oznacza to, że podczas wywołania metody WebBrowser1.Navigate sterowanie jest zwracane do aplikacji Visual Basic przed całkowitym załadowaniem dokumentu. Jeżeli planujesz automatyzację umieszczonego dokumentu, konieczne jest użycie zdarzenia NavigateComplete2 w celu ustalenia, kiedy zakończono ładowanie dokumentu. Użyj właściwości Document przekazanego obiektu WebBrowser w celu uzyskania odwołania do obiektu dokumentu pakietu Office, które w poprzednim kodzie ustawiono jako oDocument.
  • Formant WebBrowser nie obsługuje scalania menu. Jeżeli elementy menu dokumentu powinny pojawiać się z menu programu Visual Basic, należy użyć formantu kontenera OLE.
  • Formant WebBrowser zazwyczaj ukrywa wszelkie zadokowane paski narzędzi przed wyświetleniem dokumentu pakietu Office. Korzystając z automatyzacji, można wyświetlić przestawny pasek narzędzi przy użyciu kodu takiego, jak następujący:
       With oDocument.Application.CommandBars("Standard")
          .Position = 4 '[msoBarFloating]
          .Visible = True
       End With
    					
    Nowsze wersje programu Internet Explorer (5.0 i nowsze) umożliwiają również wyświetlanie zadokowanych pasków narzędzi przy użyciu następującego kodu:
     ' 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...
       WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER
    					
  • Kilka znanych problemów występuje wówczas, gdy w projekcie używanych jest kilka formantów WebBrowser ładowanych z tym samym typem dokumentu pakietu Office (tzn. wszystkie dokumenty programu Word lub arkusze kalkulacyjne programu Excel). Firma Microsoft zaleca użycie tylko jednego formantu w każdym projekcie i nawigowanie kolejno do pojedynczych dokumentów.

    Najczęściej występującym problemem jest wyświetlanie wyłączonych pasków poleceń pakietu Office. Jeżeli dwa formanty WebBrowser są używane na tym samym formularzu, do obu formantów są załadowane dokumenty programu Word i jeśli użytkownik wyświetlił paski narzędzi przy użyciu jednej z powyższych technik, tylko jeden zestaw pasków narzędzi zostanie uaktywniony i będzie działać poprawnie. Pozostałe będą wyłączone i nie mogą być używane.
  • Aby wyczyścić bieżącą zawartość formantu WebBrowser w zdarzeniu Click innego przycisku polecenia (lub w innym odpowiednim miejscu w kodzie), nawiguj do domyślnej pustej strony przy użyciu następującego kodu:
       WebBrowser1.Navigate "about:blank"
    					

Materiały referencyjne

Aby uzyskać więcej informacji dotyczących formantu WebBrowser w programie Visual Basic, kliknij następujące numery artykułów w celu wyświetlenia tych artykułów z bazy wiedzy Microsoft Knowledge Base:
162719 Używanie formantu WebBrowser za pośrednictwem programu Visual Basic 5.0
188271 Jak drukować zawartość formantu Web Browser przy użyciu aplikacji VB
191692 Plik Shdocvw.dll nie wchodzi w skład pakietu instalacyjnego kreatora PDW
238313 Uzyskiwanie dostępu do modelu obiektu dokumentu (Document Object Model) programu Internet Explorer przy użyciu aplikacji Visual Basic
927009 Podczas wyświetlania dokumentów programów Microsoft Office 2007 w programie Windows Internet Explorer 2007 zostaje otwarte nowe okno

Właściwości

Numer ID artykułu: 243058 - Ostatnia weryfikacja: 25 marca 2008 - Weryfikacja: 6.1
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Enterprise Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Słowa kluczowe: 
kbexpertiseinter kbhowto KB243058

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com