Al momento sei offline in attesa che la connessione Internet venga ristabilita

Come utilizzare il controllo WebBrowser per aprire un documento di Office

Il supporto per Office 2003 è terminato

Il supporto Microsoft per Office 2003 è terminato l'8 aprile 2014. Questa modifica ha interessato gli aggiornamenti software e le opzioni di sicurezza. Ulteriori informazioni su come continuare a essere protetti.

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
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 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"   ' 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 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. 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
Web browser kbActiveDocs kbExcel kbVBp500 kbVBp600 kbWebBrowser kbPowerPt kbWord WD2007 XL2007

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 243058 - Ultima revisione: 08/21/2007 16:43:17 - Revisione: 6.2

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

  • kbmt kbexpertiseinter kbhowto KB243058 KbMtit
Feedback
hild(m);