En remplissant un formulaire de ms-word VBA / Plus efficace intelligente la navigation par Mot
Résumé: Mon entreprise envoie des lettres à des clients et veut m'écrire une macro pour remplir les différents champs de formulaire texte qui ont été mis en place dans un document word depuis une quantité très limitée de choses changent entre les différentes lettres envoyées. J'ai fait des macros dans excel, mais c'est ma première rencontre avec ms-word macros
Problème: j'ai eu du mal à trouver efficace, intelligente la navigation par le biais de ms-word. J'ai trouvé cet article sur se déplaçant dans des directions différentes
qui est vraiment le même que les touches de direction. A été l'espoir d'obtenir un aperçu de la meilleure façon de naviguer dans le document word. Par exemple dois-je faire une boucle de déplacement vers la droite de 1 espace jusqu'à ce que je trouve quelque chose d'utile ou est-il un moyen plus efficace?
Question: Est-il possible de stocker une forme spécifique de l'emplacement dans une variable ou ms-word ont pas de système de coordonnées?
Merci d'avance!
.Find
ou For loops
ou GoTo
pour naviguer autour de votre document. Si vous avez des champs de formulaire, puis vous avez pas besoin de boucle. Je suis curieux de savoir pourquoi vous wan pour stocker l'emplacement dans une variable? Vous pouvez travailler directement avec les contrôles de contenu à l'aide de leur nom.J'ai pensé que je pourrais probablement vous référer à un composant par son nom, mais n'était pas sûr de la syntaxe. Cependant, ma curiosité à propos de l'enregistrement des coordonnées dans une variable n'était pas nécessairement tout à fait pertinente à cette question, bien que cela pourrait être utile
Voici un exemple très simple: stackoverflow.com/questions/10823874/...
Une autre : msdn.microsoft.com/en-us/library/office/hh314613.aspx et un autre 🙂 stackoverflow.com/questions/221300/...
peut-être une question stupide, mais comment puis-je trouver le nom d'un champ de formulaire, si le champ de formulaire a été donné un nom à tous? Si j'utilise le signet pour le champ de formulaire, comme ceci:
ActiveDocument.Bookmarks("myBookmark").Range.InsertBefore "Inserted Text"
parfois, le texte est inséré à l'extérieur de la forme du champ et le champ de formulaire devient inutileOriginalL'auteur Mike Kellogg | 2012-08-16
Vous devez vous connecter pour publier un commentaire.
Il y a au moins trois types de Champ de Formulaire dans la version récente de Windows de Mot - Contrôles de Contenu, "l'Héritage de Champs de Formulaire" ActiveX et les Champs de Formulaire. En supposant que vous avez affaire avec les anciens Champs de Formulaire, vous devriez être en mesure de l'indice de la FormFields collection à l'aide du nom du signet, puis utilisez, par exemple,
OriginalL'auteur
De travailler avec les contrôles de contenu, vous devez vous assurer que vous avez défini le
Title
du contrôle. Vous pouvez également définir laTag
ainsi si vous le souhaitez. Voir InstantanéEt puis vous pouvez utiliser ce code pour mettre à jour le contrôle de contenu ou de récupérer la valeur
Lorsque vous exécutez le code, c'est à quoi il ressemble
À obtenir le contrôle de texte vous pouvez utiliser
Debug.Print cc.Range.text
J'ai utilisé ce code maintenant parce que j'ai reçu une lettre différente document utilisé les contrôles de contenu au lieu de champs de formulaire. Merci :p
OriginalL'auteur Siddharth Rout
Vous devriez être en mesure de créer des signets à différents endroits dans le document que vous avez besoin d'aller. Dans le Mot moderne, c'est sur l'onglet "Insérer", dans les "Liens" du groupe. Ensuite, vous pouvez accéder à la liste des signets à partir de VBA et insérer du texte dans avec ce genre de code:
Ce MVP site a plus de données sur la technique. Aussi, MSDN a quelques données sur signet objets.
OriginalL'auteur dsolimano