maurogsc.eu
mauro gamberini


home ==> Excel: come fare per ==> Word: aprirlo da Excel senza riferimenti

Word: aprirlo da Excel senza riferimenti - VBA

NOTA. La soluzione ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dal codice o dalla soluzione proposta se usati impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.

1 - Apertura di un nuovo documento di Word. Copio incollo quanto contenuto nelle celle A1:C5 del Foglio1 del file di Excel che contiene la macro, nel documento di Word:

Public Sub m()

'in caso di errore vai a RigaErrore
On Error GoTo RigaErrore

    'dichiaro le variabili
    Dim objWord As Object
    Dim objDoc As Object
    Dim objSelection As Object
    
    'Set degli oggetti
    Set objWord = CreateObject("Word.Application")
    Set objDoc = objWord.Documents.Add()
    Set objSelection = objWord.Selection
   
    'rendo visibile Word
    objWord.Visible = True
    
    'copio dal Foglio1 e incollo
    'sul documento di Word
    With Worksheets("Foglio1")
        .Range("A1:C5").Copy
        objDoc.Select
        objSelection.Paste
    End With

'codice sempre eseguito
RigaChiusura:
    'Quit e Set a Nothing dei vari oggetti
    objWord.Quit
    Set objSelection = Nothing
    Set objDoc = Nothing
    Set objWord = Nothing
    Application.CutCopyMode = False
    'esco dalla routine
    Exit Sub

'in caso di errore
RigaErrore:
    'mostro una MsgBox con dati relativi all'errore
    MsgBox Err.Number & vbNewLine & Err.Description
    'vado alla riga di chiusura
    Resume RigaChiusura

End Sub

2 - Apertura di uno specifico documento di Word(qui C:\prova\mioFile.doc):

Public Sub m()

'in caso di errore vai a Rigaerrore
On Error GoTo RigaErrore

    'dichiarazione variabili
    Dim objWord As Object
    Dim objDoc As Object
    Dim strPath As String
    
    'path e nome del file da aprire
    strPath = "C:\prova\mioFile.doc"
    
    'controllo l'esistenza del file
    If Dir(strPath) <> "" Then
        'lo apro
        Set objWord = CreateObject("Word.Application")
        Set objDoc = objWord.Documents.Open(strPath)
    Else
        MsgBox "File non trovato"
        Exit Sub
    End If
    
    'lo rendo visibile
    objWord.Visible = True
    
    '...
    'aggiungere il codice da eseguire
    '...
    
'codice sempre eseguito
RigaChiusura:
    'Quit e Set a Nothing degli oggetti
    objWord.Quit
    Set objDoc = Nothing
    Set objWord = Nothing
    'esco dalla routine
    Exit Sub

'in caso di errore
RigaErrore:
    'mostro una MsgBox con dati relativi all'errore
    MsgBox Err.Number & vbNewLine & Err.Description
    'vado alla riga di chiusura
    Resume RigaChiusura

End Sub

Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads


Ultimo aggiornamento di questa pagina: 16/11/2010 - mauro gamberini