J'ai créé un modèle de mot avec des espaces réservés telscomme <>, je suis alors en mesure de remplacer automatiquement par ma macro Excel. Lorsque j'ai réessayé ce processus, le mot document s'ouvre à présent en indiquant qu'il s'agit d'un document en lecture seule. Comment suis-je censé enregistrer mon modèle Word afin qu'il puisse être modifié? En outre, lorsque j'ouvre le modèle de mot via ma macro Excel, comment savoir de l'enregistrer en tant que nouveau document Word et de ne pas l'enregistrer en tant que modèle mis à jour?
Voici mon code:
Sub ReplaceText()
Dim wApp As Word.Application
Dim wDoc As Word.Document
Set wApp = CreateObject("Word.Application")
wApp.Visible = True
Set wDoc = wApp.Documents.Open("file name here")
With wDoc
.Application.Selection.Find.Text = "<<name>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("A5")
.Application.Selection.EndOf
.Application.Selection.Find.Text = "<<dob>>"
.Application.Selection.Find.Execute
.Application.Selection = Range("A6")
.SaveAs2 Filename:=("file name goes here"), _
FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False
End With
End Sub
Réponses:
2 pour la réponse № 1Bien que l’approche de @wahwahwah fonctionne, c’est toujoursouvrir le modèle en tant que document à modifier, puis l'enregistrer dans un autre format tout en supprimant les alertes. Je suppose que vous souhaitez obtenir le comportement lors de l'ouverture d'un modèle à partir du shell, ce qui génère un "nouveau" document basé sur le modèle. Vous pouvez y arriver avec le "Ajouter"méthode ainsi;
Set wDoc = wApp.Documents.Add(Template:="file path here", NewTemplate:=False, DocumentType:=0)
5 pour la réponse № 2
Si vous indiquez que le fichier est en lecture seule lors de la définition du nom de fichier et que vous désactivez les alertes, cela devrait résoudre le problème de l'invite:
Set wApp = CreateObject("Word.Application")
wApp.DisplayAlerts = False
Set wDoc = wApp.Documents.Open Filename:="C:DocumentsSomeWordTemplate.dot", ReadOnly:=True
Et quand vous allez sauvegarder le fichier, sauvegardez-leavec l’extension de fichier ".doc" au lieu de ".dot" afin qu’elle soit enregistrée sous un type de fichier Word. Vous pouvez également modifier le nom du fichier et le chemin du répertoire de sortie si vous le souhaitez. (Rappelez-vous également de réactiver les alertes)
With wDoc
.ActiveDocument.SaveAs Filename:="C:DocumentsNewWordDocumentFromTemplate.doc"
End With
wApp.DisplayAlerts = True
J'espère que cela t'aides!