Come utilizzare il controllo WebBrowser per aprire un documento di Office

Traduzione articoli Traduzione articoli
Identificativo articolo: 243058 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Quando si lavora con documenti di Office Ŕ possibile decidere di visualizzare i documenti direttamente in Visual Basic e non si desidera creare un oggetto OLE incorporato utilizzando il controllo del contenitore OLE. Invece si desidera collegare a un documento esistente e aprirlo come oggetto documento ActiveX sul posto. Fortunatamente, il controllo Microsoft WebBrowser offre una soluzione.

In questo articolo viene illustrato come passare a un documento di Office esistente e visualizzarlo in Visual Basic utilizzando il controllo WebBrowser.

Informazioni

I documenti ActiveX sono oggetti OLE incorporabili con un comportamento pi¨ simile ai controlli ActiveX che non ai tradizionali oggetti OLE. A differenza di un normale oggetto incorporato, un documento ActiveX non Ŕ progettato per essere un oggetto contenuto in un documento pi¨ grande. ╚ invece, considerato un documento completo a sÚ stante, che viene semplicemente visualizzato da un visualizzatore (ad esempio Internet Explorer) o Ŕ stati raccolti in un'unica risorsa insieme ad altri documenti (ad esempio un Raccoglitore file).

Anche se Microsoft Visual Basic non attualmente supportato l'hosting di documenti ActiveX direttamente, Ŕ possibile aggirare questa limitazione utilizzando le funzionalitÓ di Internet Explorer e il controllo WebBrowser. Il controllo di WebBrowser (Shdocvw.dll) fa parte di Internet Explorer e pu˛ essere utilizzato solo su sistemi con Internet Explorer installata.

Creazione di un'applicazione di Visual Basic che apre documenti di Office

Utilizzare la procedura seguente per creare un'applicazione Visual Basic che apra documenti di Office:
  1. Avviare Visual Basic e creare un nuovo progetto standard. In base all'impostazione predefinita, viene creato il progetto Form1.
  2. Dal menu progetto , selezionare componenti per aprire la finestra di dialogo componenti . Nella finestra di dialogo componenti, aggiungere riferimenti a Microsoft Common Dialog Control e Microsoft Internet Controls . Fare clic su OK per aggiungere gli elementi alla casella degli strumenti.
  3. Aggiungere un'istanza del controllo WebBrowser, CommonDialog controllo e un controllo CommandButton al Form1.
  4. Aggiungere quindi il seguente codice nella finestra del codice per 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. Premere F5 per eseguire il progetto. Selezionando il pulsante Sfoglia , verrÓ visualizzata la finestra di dialogo Apri per consente di passare a un file Word, Excel o PowerPoint. Scegliere Apri e il documento consigliabile aprire nel controllo WebBrowser. VerrÓ visualizzato un messaggio quindi che visualizza il nome dell'applicazione di Office aperto il file.

Cosa prendere in considerazione quando si utilizza il controllo WebBrowser in programmi di Microsoft Office 2007

Le seguenti operazioni devono essere considerate quando si utilizza il WebBrowser controllo:
  • Il controllo WebBrowser passa in modo asincrono i documenti. Ci˛ significa che la chiamata restituisce il controllo all'applicazione di Visual Basic prima il documento Ŕ stato caricato completamente. Questo problema si verifica quando si chiama WebBrowser1.Navigate, viene restituito. Se si prevede di automatizzare il documento contenuto, utilizzare l'evento NavigateComplete2 in modo che Ŕ possibile sapere quando il documento ha terminato il caricamento stato caricato completamente. Utilizzare la proprietÓ di documento dell'oggetto WebBrowser per ottenere il riferimento all'oggetto del documento di Office. Nel codice precedente, il riferimento Ŕ impostato su oDocument .
  • Pi¨ noti problemi si verificano quando si dispone di pi¨ di un controllo WebBrowser in un progetto e ogni controllo viene caricato con lo stesso tipo di documento di Office. Vale a dire ogni controllo contiene tutti i documenti di Word o fogli di calcolo di Excel. Si consiglia di utilizzare un solo controllo per ogni progetto e spostarsi a un documento alla volta.
  • Per cancellare il contenuto corrente di WebBrowser, utilizzare il codice riportato di seguito per spostarsi alla pagina vuota predefinita nell'evento Click di un altro pulsante di comando. In alternativa, eseguire questa operazione in un altro punto appropriato nel codice.
       WebBrowser1.Navigate "about:blank"
    					

Cosa prendere in considerazione quando si utilizza il controllo WebBrowser nei programmi di Microsoft Office 2003 e nelle versioni precedenti di Office

Le seguenti operazioni devono essere considerate quando si utilizza il WebBrowser controllo:
  • Il controllo WebBrowser passa i documenti in modo asincrono. Ci˛ significa che quando si chiama WebBrowser1.Navigate, viene restituito, la chiamata restituisce il controllo nel Visual Basic applicazione prima che il documento Ŕ stato caricato completamente. Se si prevede di automatizzare il documento contenuto, Ŕ necessario utilizzare l'evento NavigateComplete2 per sapere quando il documento ha terminato il caricamento stato caricato completamente. Utilizzare la proprietÓ di documento dell'oggetto WebBrowser passato per ottenere un riferimento all'oggetto documento di Office, che, nel codice precedente Ŕ impostata su oDocument.
  • Il controllo WebBrowser non supporta l'unione dei menu. Se Ŕ necessario voci di menu del documento vengono visualizzati con il menu di Visual Basic, Ŕ necessario utilizzare invece il controllo contenitore OLE.
  • Il controllo WebBrowser nasconde le in genere eventuali barre degli strumenti ancorate prima di visualizzare un documento di Office. ╚ possibile utilizzare per visualizzare una barra degli strumenti mobile utilizzando un codice ad esempio l'automazione:
       With oDocument.Application.CommandBars("Standard")
          .Position = 4 '[msoBarFloating]
          .Visible = True
       End With
    					
    le versioni pi¨ recenti di Internet Explorer (5.0 e successive) consentono inoltre visualizzare le barre degli strumenti ancorate utilizzando il seguente codice:
     ' 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
    					
  • Esistono diversi problemi noti la presenza di pi¨ di un controllo WebBrowser in un progetto, e se ogni controllo viene caricato con lo stesso tipo di documento di Office (vale a dire tutti i documenti di Word, o tutti i fogli di calcolo di Excel). ╚ consigliabile che solo utilizzare un controllo per ogni progetto e passare a un documento alla volta.

    Il problema pi¨ comune riguarda le barre dei comandi di Office che sembrano disattivate. Se presenti due controlli WebBrowser sullo stesso modulo, entrambi caricati con documenti di Word, e le barre degli strumenti utilizzando una delle tecniche precedenti sono visualizzate, un solo set di barre degli strumenti sarÓ attivo e funzionano correttamente. L'altra verrÓ disattivata e non pu˛ essere utilizzata.
  • Per cancellare il contenuto corrente di WebBrowser, nell'evento Click di un altro pulsante di comando (o in un altro punto appropriato nel codice), dei comandi spostarsi alla pagina vuota predefinita utilizzando questo codice:
       WebBrowser1.Navigate "about:blank"
    					

Riferimenti

Per ulteriori informazioni sul controllo WebBrowser in Visual Basic, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
162719Come utilizzare il controllo WebBrowser da Visual Basic 5.0
188271Come stampare il contenuto del controllo browser da VB
191692Shdocvw.dll non Ŕ incluso nel pacchetto di installazione PDW
238313Accesso il modello di oggetti Document di Internet Explorer da Visual Basic
927009Quando si tenta di visualizzare un documento di programma di Microsoft Office 2007 in Windows Internet Explorer 7 verrÓ visualizzata una nuova finestra

ProprietÓ

Identificativo articolo: 243058 - Ultima modifica: martedý 21 agosto 2007 - Revisione: 6.2
Le informazioni in questo articolo si applicano a:
  • 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
Chiavi:á
kbmt kbexpertiseinter kbhowto KB243058 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 243058
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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