Du er offline. Venter på, at der oprettes forbindelse til internettet igen

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

Support til Office 2003 er ophørt

Microsoft ophørte med at yde support til Office 2003 den 8. april 2014. Denne ændring har haft indflydelse på dine softwareopdateringer og sikkerhedsindstillinger. Se, hvad det betyder for dig, og hvordan du kan forblive beskyttet.

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 ExplicitDim oDocument As ObjectPrivate 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 IfEnd SubPrivate Sub Form_Load()   Command1.Caption = "Browse"   With CommonDialog1      .Filter = "Office Documents " & _      "(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt"      .FilterIndex = 1      .Flags = cdlOFNFileMustExist Or cdlOFNHideReadOnly   End WithEnd SubPrivate Sub Form_Unload(Cancel As Integer)   Set oDocument = NothingEnd SubPrivate Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, _URL As Variant)   On Error Resume Next   Set oDocument = pDisp.Document   MsgBox "File opened by: " & oDocument.Application.NameEnd 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)
webbrowser kbActiveDocs kbExcel kbVBp500 kbVBp600 kbWebBrowser kbPowerPt kbWord
Egenskaber

Artikel-id: 243058 – Seneste udgave 03/30/2006 10:19:00 – Udgave 4.2

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

  • kbhowto KB243058
Feedback
html>