Wie Sie das Webbrowser-Steuerelement, um ein Office-Dokument öffnen

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 243058 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Beim Arbeiten mit Office-Dokumenten kann diese Dokumente direkt in Visual Basic anzeigen möchten, jedoch kein eingebettetes OLE-Objekt mit dem OLE-Container-Steuerelement erstellen möchten aus. Stattdessen möchten Sie mit einem vorhandenen Dokument verknüpfen und als ein Objekt in-Place-ActiveX-Dokument zu öffnen. Glücklicherweise bietet Microsoft WebBrowser-Steuerelements eine Lösung.

Dieser Artikel beschreibt zu einem vorhandenen Office-Dokument navigieren und es in Visual Basic über das WebBrowser-Steuerelement anzeigen.

Weitere Informationen

ActiveX-Dokumente sind integrierbare OLE-Objekte, die mehr wie ActiveX-Steuerelemente als herkömmliche OLE-Objekte Verhalten. Im Gegensatz zu einer normalen eingebettete-Objekt ist ein ActiveX-Dokument nicht ausgelegt ein enthaltenes Objekt in einem größeren Dokument. Stattdessen wird ein vollständiges Dokument sich lediglich durch einen Viewer (z. B. Internet Explorer) angezeigt wird oder in einer einzelnen Ressource mit anderen Dokumenten gesammelt betrachtet (z. B. eine Sammelmappe Datei).

Microsoft Visual Basic derzeit unterstützt, zwar nicht direkt Hosten von ActiveX-Dokumente können Sie diese Einschränkung umgehen, indem mithilfe der Funktionen von Internet Explorer und dessen Webbrowser-Steuerelement. Das WebBrowser-Steuerelement (Shdocvw.dll) ist ein Bestandteil von Internet Explorer und kann nur auf Systemen mit Internet Explorer installiert verwendet werden.

Erstellen einer Visual Basic-Anwendung, die öffnen Office-Dokumente

Gehen Sie zum Erstellen einer Visual Basic-Anwendung, die Office-Dokumenten geöffnet wird:
  1. Starten Sie Visual Basic, und erstellen ein neues Standard-Projekt. Form1 wird standardmäßig erstellt.
  2. Im Menü Projekt die Option wählen Sie aus- Komponenten , um das Dialogfeld Komponenten zu öffnen. Fügen Sie im Dialogfeld Komponenten Verweise auf die Microsoft Common Dialog Control und Microsoft Internet hinzu. Bestätigen Sie die Elemente der Toolbox hinzugefügt.
  3. Fügen eine Instanz des des WebBrowser-Steuerelements Standarddialog-Steuerelement und eine Befehlsschaltfläche zu Form1 hinzu.
  4. Fügen Sie anschließend den folgenden Code in das Codefenster für 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. Drücken Sie F5 , um das Projekt auszuführen. Wenn Sie die Schaltfläche Durchsuchen auswählen, wird das Dialogfeld Öffnen angezeigt, sodass Sie zu einer Word-, Excel- oder PowerPoint-Datei navigieren. Wählen Sie Öffnen und das Dokument im WebBrowser-Steuerelement geöffnet werden soll. Ein Meldungsfeld angezeigt, das den Namen der Office-Anwendung anzeigt, die die Datei geöffnet wird.

Was Sie berücksichtigen, wenn Sie das Webbrowser-Steuerelement in Microsoft Office 2007-Programme verwenden

Folgendes sollte beim Verwenden des WebBrowser betrachtet werden Steuerelement:
  • Das Webbrowser-Steuerelement navigiert asynchron zu Dokumenten. Dies bedeutet, dass der Aufruf des Steuerelements für die Visual Basic-Anwendung, zurückgegeben bevor das Dokument vollständig geladen wurde. Dies geschieht, wenn Sie WebBrowser1.Navigate aufrufen. Wenn Sie das enthaltene Dokument zu automatisieren möchten, verwenden Sie das Ereignis " NavigateComplete2 , so dass Sie wissen, wann das Dokument laden abgeschlossen wurde. Verwenden Sie die Document -Eigenschaft des WebBrowser -Objekts, um den Verweis auf das Office-Dokumentobjekt abzurufen. Im vorherigen Code wird der Verweis auf oDocument festgelegt.
  • Mehrere bekannte Probleme auftreten, wenn Sie mehr als einem WebBrowser-Steuerelement in einem Projekt und jedes Steuerelement wird mit den gleichen Typ eines Office-Dokument geladen. Enthält jedes Steuerelement alle Word-Dokumente oder alle Excel-Kalkulationstabellen. Es wird empfohlen, dass Sie nur ein Steuerelement pro Projekt verwenden und, dass ein Dokument gleichzeitig verschieben.
  • Um den aktuellen Inhalt aus dem WebBrowser zu löschen, verwenden Sie den folgenden Code, um zu der standardmäßig leere Seite im Click-Ereignis einer anderen Befehlsschaltfläche zu navigieren. Oder tun Sie dies bei anderen geeigneten Stelle im Code.
       WebBrowser1.Navigate "about:blank"
    					

Was Sie berücksichtigen, wenn Sie das Webbrowser-Steuerelement in den Microsoft Office 2003-Programmen und in früheren Versionen von Office verwenden

Folgendes sollte beim Verwenden des WebBrowser betrachtet werden Steuerelement:
  • Das Webbrowser-Steuerelement navigiert asynchron zu Dokumenten. Dies bedeutet, dass Sie WebBrowser1.Navigate aufrufen, der Aufruf wieder Ihre Visual Basic-Anwendung vor wird das Dokument vollständig geladen wurde. Wenn Sie das enthaltene Dokument zu automatisieren, müssen Sie das Ereignis " NavigateComplete2 verwenden, um zu wissen, wann das Dokument laden abgeschlossen wurde. Verwenden Sie die Document -Eigenschaft des Webbrowser-Objekts übergeben einen Verweis auf dem Office-Dokument-Objekt zu erhalten, die im vorhergehenden Code auf oDocument festgelegt ist.
  • Das Webbrowser-Steuerelement unterstützt nicht Menüzusammenführung. Wenn Sie Menüelemente des Dokuments zusammen mit Ihrem Visual Basic-Menü angezeigt werden, müssen Sie stattdessen die OLE-Container-Steuerelement verwenden.
  • Das WebBrowser-Steuerelement blendet verankerte Symbolleisten in der Regel aus, bevor ein Office-Dokument angezeigt wird. Sie können Automatisierung verwenden, um eine unverankerte Symbolleiste mit Code wie diesem anzeigen:
       With oDocument.Application.CommandBars("Standard")
          .Position = 4 '[msoBarFloating]
          .Visible = True
       End With
    					
    neuere Versionen von Internet Explorer (5.0 und höher) können auch Sie verankerte Symbolleisten mithilfe des folgenden Codes anzeigen zu lassen:
     ' 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
    					
  • Es sind mehrere Probleme bekannt, die auftreten können, wenn mehr als ein WebBrowser-Steuerelement in einem Projekt vorhanden ist und alle Steuerelemente mit dem gleichen Typ eines Office-Dokuments (d.h. nur Word-Dokumente oder nur Excel-Arbeitsblätter) geladen werden. Es wird empfohlen, dass Sie nur ein Steuerelement pro Projekt verwenden, und navigieren Sie zu einem Dokument zu einem Zeitpunkt.

    Die häufigsten Probleme treten im Zusammenhang mit Office-Befehlsleisten auf, die scheinbar deaktiviert sind. Wenn Sie zwei WebBrowser-Steuerelemente in demselben Formular aufweisen, beide mit Word-Dokumenten geladen und Sie Symbolleisten mithilfe eines der vorstehend beschriebenen Verfahren angezeigt haben nur ein Symbolleistensatz werden aktiv und arbeiten ordnungsgemäß. Der andere wird deaktiviert und kann nicht verwendet werden.
  • Der WebBrowser den aktuellen Inhalt löschen möchten, im Click -Ereignis einer anderen Befehlsschaltfläche (navigieren oder im anderen geeigneten Stelle im Code) auf die leere Standardseite mithilfe dieses Codes:
       WebBrowser1.Navigate "about:blank"
    					

Informationsquellen

Weitere Informationen über das WebBrowser-Steuerelement in Visual Basic finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
162719Wie das WebBrowser-Steuerelement von Visual Basic 5.0 verwendet
188271Zum Inhalt des WebBrowser-Steuerelements von VB drucken
191692Shdocvw.dll ist nicht in PDW Setup-Paket enthalten.
238313Zugriff auf Internet Explorer Document-Objektmodell von Visual Basic
927009Ein neues Fenster öffnet Wenn Sie versuchen, ein Microsoft Office 2007-Dokument in Internet Explorer 7 anzuzeigen

Eigenschaften

Artikel-ID: 243058 - Geändert am: Dienstag, 21. August 2007 - Version: 6.2
Die Informationen in diesem Artikel beziehen sich auf:
  • 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 Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 5.0 Enterprise Edition
Keywords: 
kbmt kbexpertiseinter kbhowto KB243058 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 243058
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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