Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aprire un file word da macro excel

51 views
Skip to first unread message

Graziano Ruggiero

unread,
May 11, 2022, 3:33:50 PM5/11/22
to
Buonasera a tutti avrei un quesito a doppia domanda da porre:
1) Come fare aprire a Mia_Macro (NON-REGISTRATA!) un file word nuovo basato su un modello preesistente da me creato?
2) E se Mia_Macro fosse lanciata da Excel?

Grazie per il contributo

casanmaner

unread,
May 17, 2022, 1:39:43 AM5/17/22
to
Sub ApriNuovoDocDaModello()
Dim oAppWord As Object
Dim oDocWord As Object
Dim sPath As String
Dim sNomeFileModello As String
sPath = "C:\percorsomodello\"
sNomeFileModello = "miomodelloword.docx"

Set oAppWord = CreateObject("Word.Application")
With oAppWord
.Visible = True
Set oDocWord = .Documents.Add(Template:=sPath & sNomeFileModello, NewTemplate:=False, DocumentType:=0)
With oDocWord
'.... eseguire le istruzioni relative al documento word
End With
End With
End Sub


ovviamente dovrai indicare il percorso dove è salvato il documento che fa da modello e il nome del file che fa da modello nelle due variabili "sPath" e "sNomeFileModello"

RE.MOTO

unread,
May 17, 2022, 5:49:18 AM5/17/22
to
Grazie Casanmaner esposizione, abbastanza chiara e indicazioni guida concrete. Lo testo non appena sono operativo. si si abbastanza chiaro! Un grazie fragoroso :)

una considerazione ed un dubbio:
> sPath = "C:\percorsomodello\"
qui per me diventa un pò più "per prove ed errori" ... avendo un MAC non mi è ancora chiara la notazione MAC in raffronto alla notazione DOS che so usare bene (credo).

> sNomeFileModello = "miomodelloword.docx"
qui invece chiedo, ma l'estensione dovrebbe essere ".dot" essendo un modello word?

Ancora grazie

RE.MOTO

casanmaner

unread,
May 17, 2022, 9:09:23 AM5/17/22
to
Il giorno martedì 17 maggio 2022 alle 11:49:18 UTC+2 RE.MOTO ha scritto:
> Grazie Casanmaner esposizione, abbastanza chiara e indicazioni guida concrete. Lo testo non appena sono operativo. si si abbastanza chiaro! Un grazie fragoroso :)
>
> una considerazione ed un dubbio:
> > sPath = "C:\percorsomodello\"
> qui per me diventa un pò più "per prove ed errori" ... avendo un MAC non mi è ancora chiara la notazione MAC in raffronto alla notazione DOS che so usare bene (credo).

Qui non saprei dirti in verità perché non ho avuto mac.

>
> > sNomeFileModello = "miomodelloword.docx"
> qui invece chiedo, ma l'estensione dovrebbe essere ".dot" essendo un modello word?

Non necessariamente. L'istruzione crea un nuovo documento in base a ciò che viene indicato come modello, che può essere anche un normale documento.
Ma non verrà aperto il documento ma una "copia" basata su quel documento.

ciao


>

RE.MOTO

unread,
May 17, 2022, 3:24:38 PM5/17/22
to
Perfetto era proprio il mio obiettivo fare aprire ad una macro Excel un documento Word, nuovo, basato su un modello .dot. Quindi quell'assegnazione "x" nel codice è sufficiente a far generare il nuovo doc basato sul modello.
Grazie
Ciao

RE.MOTO

unread,
May 17, 2022, 5:12:35 PM5/17/22
to
Allora Casanmaner ho provato la routine ma restituisce un codice errore su questa riga:

Set oDocWord = .Documents.Add(Template:=sPath & sNomeFileModello, NewTemplate:=False, DocumentType:=0)

Come potrei risolvere? ho provato a "guastare" un pò il codice senza esiti. Attualmente la routine apre solo il word e un doc basato sul classico normal.dotx.
Poi la routine restituisce un secondo errore se si è eseguita la macro con il Word già in esecuzione. L'errore restituito è sulla riga :
Set oAppWord = CreateObject("Word.Application")

Spero si possa risolvere

casanmaner

unread,
May 18, 2022, 3:19:01 AM5/18/22
to
Probabilmente il "problema" dipende dal diverso sistema operativo.
Ho appena provato ad aprire un nuovo documento basato su un documento ".doc" e viene aperto normalmente.
E anche e Word è già aperto non viene dato alcun errore ma viene creata una nuova e ulteriore istanza all'applicazione.

Comunque per questa evenienza, gestendo l'eventuale presenza di un errore tramite le istruzioni on error resume next e If Err.Number <> 0 potresti provare con

Set oAppWord = GetObject(, "Word.Application")

RE.MOTO

unread,
May 18, 2022, 1:54:22 PM5/18/22
to
OTTIMO Casanmaner. Avevo avuto sentore anche io che la "problematica" afferisse al S.O. leggendo i codici di errore restituiti. In particolare mi è accaduto su una macro che aveva il compito di eliminare tutti i Pulsanti tranne alcuni. Su macchine DOS funzionava senza problemi.
Ora proverò le tue indicazioni. Grazie.

RE.MOTO

RE.MOTO

unread,
May 21, 2022, 3:31:07 AM5/21/22
to
Ciao Casanmaner, non so se può ancora interessati. Ho testato i suggerimenti che mi ha fornito. La routine svolge il suo percorso senza fermarsi riuscendo però solo ad aprire il Word senza aprire il file indicato ... Ritieni ci possano essere soluzioni alternative? Grazie.

casanmaner

unread,
May 23, 2022, 4:07:09 AM5/23/22
to
Il giorno sabato 21 maggio 2022 alle 09:31:07 UTC+2 RE.MOTO ha scritto:
> Ciao Casanmaner, non so se può ancora interessati. Ho testato i suggerimenti che mi ha fornito. La routine svolge il suo percorso senza fermarsi riuscendo però solo ad aprire il Word senza aprire il file indicato ... Ritieni ci possano essere soluzioni alternative? Grazie.
Non saprei che dirti.
Ma Mac come lavora sui "percorsi" del disco/rete?
Io credo che l'inghippo sia lì.
0 new messages