0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Wordの差し込み印刷でフィールドを駆使してさらに便利にしてみる

Last updated at Posted at 2025-03-04
まずはじめに、この記事は半分備忘録を兼ねての投稿なので、変に長かったり回りくどかったりしますが、予め(ry

こんにちは。おはよう。こんばんは。あるいは、おやすみなさい。

皆さんはWordの差し込み印刷使ってますか?
私は仕事ではがきや封筒の制作~発送を代行で行うこともあるので、かなり活用しています。
個人宛(~様)なら、そんなに困ることはないのですが、これが会社や部署宛(~御中)だと問題が出てきます。

宛名が長すぎる問題

個人宛なら会社名や部署名は、フォントサイズ小さくして横に添えてごまかすことはできますし、個人名は長くても姓名の間スペース含めて、7文字ぐらいで収まるのでいけます。

これが会社・部署宛(~御中)となると、くっそ長い会社名に部署名あるんですよね…
実在する会社名を例に「コカ・コーラ ボトラーズジャパンホールディングス 御中」とかもう泣きたくなりますね。(横書きにすればある程度解決できるのは置いといて…)
 
そんな時は…

長い会社名に合せてフォントサイズを小さくその場しのぎの術!:spy:

当初はそんなことしていました。
ですが、社名や部署も千差万別!いきなり短い会社名が来た時、すっごい間の空いた寂しい感じになってしまうので、レコードを変えつつ手動でフォントサイズを変えて印刷して~なんかもやっていました。なんかスマートじゃない…

そんなことしないで、フィールドコードで柔軟に対応できるやん!

正確には、フィールドとExcel表のデータをダブルで活用します。

Excelのデータはこんな風に作りましたよ。

aaaa.jpg

Excelのデータを作るにあたって

細かい数式は省略しますが、だいたいこんな感じで作ってます。

  • 灰色の部分は数式で引っ張って表示しているだけ
    • 「営業所支店」があれば「社名(印刷用)」に社名を表示
    • 「宛名」は「社名」と「営業所支店」をくっつけて表示
  • 文字数はそれぞれの「宛名」からLEN()関数で表示

ExcelのデータをWordに読み込ませましょう

さて、このExcelのデータ(xlsx)を実際にWordで読み込んでみましょう。
メニュー「差し込み文書」→「宛先の選択」→「既存のリストを使用」

読み込んだら、「差し込みフィールドの挿入」で試しに「宛名」フィールドを挿入します。
この時、自動的にフィールドコードが生成されています。

No.2の長い宛名が忌々しい…文字数を見ると、22文字です。縦書きにすると間違いなくあふれてしまいますね。フォントサイズを小さくすると、No.3の短い社名の場合、間が空いてしまいます。

★フィールドコードの出番★

フィールドを挿入した時点でフィールドコードは自動的に生成されています。
どのように生成されているか見てみましょう。ALT+F9 を押してみてください。

ALT+F9でフィールコードの表示/非表示を行います。

{ MERGEFIELD 宛名 }

{}でくくってそれぞれの要素を半角スペースで区切っています。
MERGEFIELD フィールド名(Excel表のヘッダ名) で表示できるようです。
そんなフィールドコードですが、IF文が存在します。

{ IF {MERGEFIELD ●● } = 条件 {条件に合えば(TRUE)} {条件に合わない場合(FALSE)} }

上記書式ならって、文字数のフィールドを参照しつつ、~文字以上だったら、フォントサイズを小さく、それ以外はフォントサイズは大きくというのを設定しましょう。

ちなみに { } はタイプしての記述ではなく、CTRL+F9 を押して挿入しましょう。

CTRL+F9 でフィールコードの { } を挿入
※挿入後にカッコ内側にあるスペースを消さないよう注意

Wordですが、Microsoftの💩仕様がありまして、必ずショートカットを覚えて使用してください。私の環境では、タイプしてだとフィールドコードとして認識されませんでした。そして、フィールドコードをいじったら、必ずフィールドの更新を行いましょう。

さぁ、記述してみます。

Wordフィールドコード
{ IF { MERGEFIELD 文字数 } >= 10 { MERGEFIELD 宛名 } { MERGEFIELD 宛名 } }

これで10文字以上の場合の条件が書けました。
10文字以上だったら、左側の条件で表示され、以下だったら、右側が表示されます。

フォントサイズの指定は?**となりますが、フィールドコード { MERGEFIELD 宛名 } を選択して、サイズを変更しましょう。そのまま書式が適用されます。

設定できたら、ALT+F9で表示をプレビュー表示の状態にしてみましょう。
この時に、フィールド部分(灰色)内で右クリックして、フィールド更新をしましょう。

これで反映されます。

それでも長くて対応できない!

そんな時は条件で宛名を営業所支店名にしましょう。
IFをネストして、第1条件10文字を超えて、さらに20文字を超えるようであれば営業所や支店フィールドにすることで、スマートになります。

Wordフィールドコード(ネストの例)
{ IF { MERGEFIELD 文字数 } >= 10 {IF { MERGEFIELD 文字数 } >= 20 { MERGEFIELD 営業所や支店 } { MERGEFIELD 宛名 }} { MERGEFIELD 宛名 } }

社名は「社名(印刷用)」フィールドを使って別のフィールドに入れましょう。

Excelの表データも細かく分けておくと、フィールドコードで条件分けするときに表示も応用が利くので便利です。

これでスマートになりました🥳

ちなみに

テキストボックスにフィールドコードを入れて使う事が多いと思うのですが、条件文などでフィールドコードが長くなると可読性が悪く編集が大変になります。コードのコピペもできないので、注意が必要です。

レイアウトの位置やサイズの値を覚えておいて、一時的に広げる等対応が必要になってくる場合があります。

↓は封筒(長3)に差し込み印刷+フィールドコードを設定した状態

キャプチャ
Excel表のデータのヘッダー名は多少違いますが、宛名は先ほどの解説とほぼ同じ表示にしています。敬称も文字数に応じて、フォントサイズを変えています。

¥マークが見えますが、住所1フィールドの数字を漢数字に変換するオプション ¥v になります。表段階で漢数字に置き換えているので、ほぼ使ってません。

Wordフィールドコード
{ MERGEFIELD 住所1 ¥v }

(表示上¥マークは全角にしていますが、実際は半角です。)
 
Word側でフィールドコード編集ボックスみたいなの表示してくれればいいんですけど、どうにかならないんですかねぇ~😮‍💨

差し込み印刷用のExcel表を作るにあたって便利なソフト(特に住所関連)

さらに番外編!特に住所とか縦書きにするとき、漢数字にしたり、 -(ハイフン)をー(長音記号)に置き換えたり、英文字を全角にしたり、サクッとやりたいとき、便利なフリーソフトがあります。

置換もわざわざ正規表現使って、やったりなどめんどくさいので、こちらのソフトで必要な変換だけサクッとできますので、超おすすめ。いろんな置換に対応しているボタン、細かい設定など、本当に役立ちます。

記事としてうまくまとめられなかったのは重々承知ですが、何かありましたらコメントくださいです😓

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?