Sådan benyttes WebBrowser-kontrolelementet til at åbne et Office-dokument

Oversættelser af artikler Oversættelser af artikler
Artikel-id: 243058 - Få vist de produkter, som denne artikel refererer til.
Udvid alle | Skjul alle

På denne side

Sammenfatning

Når du arbejder med Office-dokumenter, vil du måske have vist dokumenterne direkte i Visual Basic, men ikke oprette et integreret OLE-objekt ved hjælp af OLE-beholderkontrolelementet. I stedet vil du sammenkæde med et eksisterende dokument og åbne det som et lokalt ActiveX-dokumentobjekt. Heldigvis tilbyder Microsoft WebBrowser-kontrolelementet en løsning.

I denne artikel demonstreres, hvordan du navigerer til et eksisterende Office-dokument og viser det i Visual Basic ved hjælp af WebBrowser-kontrolelementet.

Yderligere Information

ActiveX-dokumenter er integrerede OLE-objekter, der opfører sig mere som ActiveX-objekter end traditionelle OLE-objekter. I modsætning til et normalt, integreret objekt er et ActiveX-dokument ikke udviklet til at være et objekt, der udgør en del af et større dokument. I stedet anses det for at være et komplet dokument i sig selv, der blot vises ved hjælp af en fremviser (f.eks. Internet Explorer), eller der indsamles i en enkelt ressource sammen med andre dokumenter (f.eks. en projektmappefil).

Selvom Microsoft Visual Basic i øjeblikket ikke understøtter muligheden for at være vært for ActiveX-dokumenter direkte, kan du omgå denne begrænsning ved at bruge egenskaberne i Internet Explorer og programmets WebBrowser-kontrolelement. WebBrowser-kontrolelementet (Shdocvw.dll) er en del af Internet Explorer og kan kun bruges på systemer, hvor Internet Explorer er installeret.

Oprettelse af et Visual Basic-program, der åbner Office-dokumenter

Følg nedenstående trin for at oprette et Visual Basic-program, der åbner Office-dokumenter:
  1. Start Visual Basic, og opret et nyt standardprojekt. Form1 oprettes som standard.
  2. Vælg Komponenter i menuen Projekt for at åbne dialogboksen Komponenter. Føj referencer til Microsoft CommonDialog-kontrolelementet og Microsofts internetkontrolelementer i dialogboksen Komponenter. Klik på OK for at føje elementerne til værktøjskassen.
  3. Føj en forekomst af WebBrowser-kontrolelementet, CommonDialog-kontrolelementet og CommandButton til Form1.
  4. Føj dernæst følgende kode til kodevinduet for 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"
       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. Tryk på F5 for at køre projektet. Når du vælger knappen Gennemse , vises dialogboksen Åbn, hvor du kan navigere til en Word-, Excel- eller PowerPoint-fil. Vælg Åbn for at åbne dokumentet i WebBrowser-kontrolelementet. Der vises derefter en meddelelse, hvor navnet på det Office-program, der åbnede filen, er angivet.

Overvejelser i forbindelse med brug af WebBrowser-kontrolelementet

Overvej følgende, når du bruger WebBrowser-kontrolelementet:
  • WebBrowser-kontrolelementet navigerer asynkront til dokumenter. Det betyder, at når du kalder WebBrowser1.Navigate, returnerer kaldet kontrollen til Visual Basic-programmet, inden dokumentet er fuldstændigt indlæst. Hvis du planlægger at automatisere dokumentet, skal du bruge hændelsen NavigateComplete2 for at få at oplyst, hvornår indlæsningen af dokumentet er fuldført. Brug det sendte WebBrowser-objekts dokumentegenskab for at oprette en reference til Office-dokumentobjektet, som i den foregående kode er angivet til oDocument.
  • WebBrowser-kontrolelementet understøtter ikke menufletning. Hvis dokumentets menupunkter skal vises sammen med Visual Basic-menuen, skal du i stedet bruge OLE-beholderkontrolelementet.
  • WebBrowser-kontrolelementet skjuler generelt forankrede værktøjslinjer, før et Office-dokument vises. Du kan bruge automatiseringsfunktionen til at få vist en flydende værktøjslinje ved hjælp af kode som vist nedenfor:
       With oDocument.Application.CommandBars("Standard")
          .Position = 4 '[msoBarFloating]
          .Visible = True
       End With
    					
    I nyere versioner af Internet Explorer (5.0 og nyere) kan du også få vist forankrede værktøjslinjer ved hjælp af følgende kode:
     ' 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
    					
  • Der er flere velkendte problemer forbundet med at have mere end ét WebBrowser-kontrolelement i et projekt, og med at der i de enkelte kontrolelementer er indlæst den samme type Office-dokument (dvs. udelukkende Word-dokumenter eller udelukkende Excel-regneark). Det anbefales, at du kun kan bruger ét kontrolelement pr. projekt og kun navigerer til ét dokument ad gangen.

    Det mest almindelig problem opstår i forbindelse med Office-kommandolinjer, der virker til at være deaktiveret. Hvis du har to WebBrowser-kontrolelementer på den samme formular, der begge indeholder Word-dokumenter, og du har fået vist værktøjslinjer ved hjælp af en af de foregående teknikker, er det kun det ene sæt værktøjslinjer, der er aktivt og fungerer korrekt. Det andet sæt er deaktiveret og kan ikke benyttes.
  • Hvis du vil fjerne WebBrowser-kontrolelementets nuværende indhold, skal du i en anden kommandoknaps klikhændelse (eller et andet passende sted i koden) navigere til den tomme standardside ved hjælp af denne kode:
       WebBrowser1.Navigate "about:blank"
    					

Referencer

Yderligere oplysninger om WebBrowser-kontrolelementet i Visual Basic finder du ved at klikke på nedenstående artikelnumre for at få vist artiklerne i Microsoft Knowledge Base:
162719 Sådan bruges WebBrowser-kontrolelementet fra Visual Basic 5.0 (artiklen er evt. på engelsk)
188271 Sådan udskrives WebBrowser-kontrolelementets indhold fra VB (artiklen er evt. på engelsk)
191692 PRB: Shdocvw.dll er ikke inkluderet i PDW-installationspakken (artiklen er evt. på engelsk)
238313 PRB: Oprettelse af adgang til Internet Explorer DOM (Document Object Model) fra Visual Basic (artiklen er evt. på engelsk)

Egenskaber

Artikel-id: 243058 - Seneste redigering: 30. marts 2006 - Redigering: 4.2
Oplysningerne i denne artikel gælder:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard
  • Microsoft Excel 2000 Standard
  • Microsoft Excel 97 Standard
  • 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
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard
  • Microsoft PowerPoint 2000 Standard
  • Microsoft PowerPoint 97 Standard
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard
  • Microsoft Word 2000 Standard
  • Microsoft Word 97 Standard
Nøgleord: 
kbhowto KB243058

Send feedback

 

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