Wordで、VBAを使用してプログラムで差し込み印刷データを変更するにはどうすればよいですか?
-
10-07-2019 - |
質問
差し込み印刷のソース文書として使用されるWord文書があります。ドキュメントを編集できますが、マージに使用されているデータは編集できません。データソース内のデータの一部を変換する必要があります(具体的には、数値(たとえば342)を取得し、その値を単語で追加する必要があります(たとえば、「324(342)」))。変換を行うVBA関数を作成できますが、その関数にデータを取得する最善の方法がわかりません。
マクロをドキュメント内の特定のポイントに関連付けて、マージプロセスで変換プロセスを実行する方法はありますか? (Wordフィールドで数式を使用する方法を考えています。 {IF {MERGEFIELD foo}> 75 {MERGEFIELD foo} {= {MERGEFIELD foo} * 20 }}
文書内に既にあります。何かを追加して {FUNCTION WordNum {MERGEFIELD number}}
理想的。)
別の方法として、VBAを使用して、差し込み印刷のデータソース(特に document.MailMerge.DataSource
)を調べ、フィールドを書き換えることができると思います。そのルートに行く場合、データソースから読み取られた後、ドキュメントにマージされる前にデータに到達するようにマクロをどこで実行する必要がありますか?
解決 2
埋め込まれたWordマクロから任意の関数を呼び出す方法はないようであるため、VBAルートに進みました。
MailMerge.EditDataSource
を呼び出したソースドキュメントに AutoOpen
マクロを追加し、テーブルを調べて変更を加えました。
他のヒント
Microsoft Queryでデータ変換を実行できますか?つまり、現在あなたがいる場所:
Data Source -> Mail Merge Template
データソースとWordの間にあるMicrosoft Queryを作成します。
Data Source -> Microsoft Query -> Mail Merge Template
Wordで差し込み印刷を使用してからしばらく経ちましたが、それに対して多くの制御を実行できることを覚えていません...