2009-09-17 7 views
1

J'ai un document Word qui est utilisé comme document source pour une opération de fusion et publipostage. Je peux éditer le document, mais pas les données utilisées pour la fusion. J'ai besoin de transformer certaines des données dans la source de données (en particulier, je dois prendre des nombres (par exemple 342) et ajouter leur valeur dans des mots (par exemple "trois cent quarante-deux (342)")). Je peux écrire une fonction VBA pour faire la transformation, mais je ne suis pas sûr de la meilleure façon d'obtenir les données pour cette fonction.Dans Word, comment puis-je modifier les données de fusion et publipostage par programme avec VBA?

Est-il possible d'associer une macro à des points spécifiques du document et de laisser la fusion entraîner le processus de transformation? (Je pense à la façon dont vous pouvez utiliser des formules dans les champs Word, j'ai quelques choses de la forme { IF { MERGEFIELD foo } > 75 { MERGEFIELD foo } { = { MERGEFIELD foo } * 20 } } dans le document déjà Si je pourrais ajouter quelque chose que je pourrais aller { FUNCTION WordNum { MERGEFIELD number } }, ce serait idéal.)

Alternativement, je pense que je peux utiliser VBA pour fouiller dans la source de données du publipostage (spécifiquement document.MailMerge.DataSource) et réécrire les champs. Si je vais cette route, où dois-je exécuter la macro afin qu'elle obtienne les données après qu'il a été lu de la source de données, mais avant qu'il ait été fusionné avec le document?

Répondre

0

Il ne semble pas y avoir un moyen d'appeler des fonctions arbitraires à partir de macros Word incorporées, donc je suis allé sur la route VBA.

J'ai ajouté une macro AutoOpen au document source qui a appelé MailMerge.EditDataSource, puis j'ai parcouru la table pour apporter ses modifications.

0

Pourriez-vous faire la transformation de données dans Microsoft Query? C'est, où vous avez actuellement:

Data Source -> Mail Merge Template 

créer un Microsoft Query qui se trouve entre votre source de données et Word:

Data Source -> Microsoft Query -> Mail Merge Template 

Il a été un moment que je Publipostage dans Word mais je n » Je ne me souviens pas d'avoir pu exercer beaucoup de contrôle dessus ...

+0

Je ne peux pas. Je fournis un document Word à un programme tiers qui génère des données et effectue la fusion. (Plus précisément, le programme établit un document de fusion et publipostage avec un exemple de fichier, puis me permet d'éditer ce document.Je peux apporter les modifications que je veux au document, mais pas à la plupart des autres parties du processus.) – asciiphil

Questions connexes