maurogsc.eu
|
![]() |
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