Obtenir la valeur de la zone de texte dans Word à l'aide de macro VBA, mais dans le modèle Word

Contexte: je veux un texte saisi à partir d'une zone de texte pour le nom de fichier par défaut dans la boîte de dialogue enregistrer sous.

J'ai mis en application les script VBA dans mon document Word 2010 modèle .dotm

Sub FileSaveAs()

'for testing
Dim fileName As String
fileName = Me.tb_myTextBox.Value & "_MyFileNameToSave"
MsgBox fileName

'use specific file name in save dialog
With Dialogs(wdDialogFileSaveAs)
  .Name = fileName
  .Show
 End With

End Sub

Il fonctionne très bien, quand je le lance. J'ai sauvé le .dotm, fermé et rouvert, à partir de l'Explorateur Windows (ce qui signifie que "l'utilisateur final").
MAIS dans ce cas, signifie après avoir ouvert le document du modèle en tant que "utilisateur final" (afin que je puisse enregistrer un nouveau doc et de ne pas remplacer le modèle), le contenu et la valeur de la TextBox est vide, même si j'ai saisi quelque chose en elle.

Alors, comment puis-je lire les données de la zone de texte dans le document "mode" d'un modèle?

  • Où est la zone de texte?
  • Vous devez éditer votre question à partager vos mesures exactes, je ne comprends pas ce qui ne fonctionne pas pour vous. Aussi, votre code est incomplet et n'importe qui qui offre de l'aide sera nécessaire de remplir les blancs, ce qui pourrait conduire à la confusion.
  • Ok, nouvel essai d'explication... il y a deux cas: - (1) la modification du modèle, si vous l'enregistrez, il est de nouveau .dotm. Dans ce cas, tout fonctionne très bien avec le script. - (2) ouvrez le modèle en tant que "utilisateur final" (et non pas en tant que modèle-auteur). Si l'utilisateur clique sur le bouton Enregistrer, le document est enregistré en tant que .doc et pas .dotm. Dans ce cas, le script ne fonctionne PAS! btw: si le code est incomplet?? confus
  • La zone de texte est seulement situé sur la page (au niveau de la racine). Le script VBA est enregistré dans "Ce document intitulé" code source (et pas dans un module).
  • Avez-vous résoudre ce problème? Si non, je peux vous orienter dans la bonne direction...
InformationsquelleAutor Chris | 2012-07-06