こんにちは。おはよう。こんばんは。あるいは、おやすみなさい。
皆さんはWordの差し込み印刷使ってますか?
私は仕事ではがきや封筒の制作~発送を代行で行うこともあるので、かなり活用しています。
個人宛(~様)なら、そんなに困ることはないのですが、これが会社や部署宛(~御中)だと問題が出てきます。
宛名が長すぎる問題
個人宛なら会社名や部署名は、フォントサイズ小さくして横に添えてごまかすことはできますし、個人名は長くても姓名の間スペース含めて、7文字ぐらいで収まるのでいけます。
これが会社・部署宛(~御中)となると、くっそ長い会社名に部署名あるんですよね…
実在する会社名を例に「コカ・コーラ ボトラーズジャパンホールディングス 御中」とかもう泣きたくなりますね。(横書きにすればある程度解決できるのは置いといて…)
そんな時は…
長い会社名に合せてフォントサイズを小さくその場しのぎの術!
当初はそんなことしていました。
ですが、社名や部署も千差万別!いきなり短い会社名が来た時、すっごい間の空いた寂しい感じになってしまうので、レコードを変えつつ手動でフォントサイズを変えて印刷して~なんかもやっていました。なんかスマートじゃない…
そんなことしないで、フィールドコードで柔軟に対応できるやん!
正確には、フィールドとExcel表のデータをダブルで活用します。
Excelのデータはこんな風に作りましたよ。
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の💩仕様がありまして、必ずショートカットを覚えて使用してください。私の環境では、タイプしてだとフィールドコードとして認識されませんでした。そして、フィールドコードをいじったら、必ずフィールドの更新を行いましょう。
さぁ、記述してみます。
{ IF { MERGEFIELD 文字数 } >= 10 { MERGEFIELD 宛名 } { MERGEFIELD 宛名 } }
これで10文字以上の場合の条件が書けました。
10文字以上だったら、左側の条件で表示され、以下だったら、右側が表示されます。
フォントサイズの指定は?**となりますが、フィールドコード { MERGEFIELD 宛名 } を選択して、サイズを変更しましょう。そのまま書式が適用されます。
設定できたら、ALT+F9で表示をプレビュー表示の状態にしてみましょう。
この時に、フィールド部分(灰色)内で右クリックして、フィールド更新をしましょう。
これで反映されます。
それでも長くて対応できない!
そんな時は条件で宛名を営業所支店名にしましょう。
IFをネストして、第1条件10文字を超えて、さらに20文字を超えるようであれば営業所や支店フィールドにすることで、スマートになります。
{ IF { MERGEFIELD 文字数 } >= 10 {IF { MERGEFIELD 文字数 } >= 20 { MERGEFIELD 営業所や支店 } { MERGEFIELD 宛名 }} { MERGEFIELD 宛名 } }
社名は「社名(印刷用)」フィールドを使って別のフィールドに入れましょう。
Excelの表データも細かく分けておくと、フィールドコードで条件分けするときに表示も応用が利くので便利です。
これでスマートになりました🥳
ちなみに
テキストボックスにフィールドコードを入れて使う事が多いと思うのですが、条件文などでフィールドコードが長くなると可読性が悪く編集が大変になります。コードのコピペもできないので、注意が必要です。
レイアウトの位置やサイズの値を覚えておいて、一時的に広げる等対応が必要になってくる場合があります。
↓は封筒(長3)に差し込み印刷+フィールドコードを設定した状態
Excel表のデータのヘッダー名は多少違いますが、宛名は先ほどの解説とほぼ同じ表示にしています。敬称も文字数に応じて、フォントサイズを変えています。
¥マークが見えますが、住所1フィールドの数字を漢数字に変換するオプション ¥v になります。表段階で漢数字に置き換えているので、ほぼ使ってません。
{ MERGEFIELD 住所1 ¥v }
(表示上¥マークは全角にしていますが、実際は半角です。)
Word側でフィールドコード編集ボックスみたいなの表示してくれればいいんですけど、どうにかならないんですかねぇ~😮💨
差し込み印刷用のExcel表を作るにあたって便利なソフト(特に住所関連)
さらに番外編!特に住所とか縦書きにするとき、漢数字にしたり、 -(ハイフン)をー(長音記号)に置き換えたり、英文字を全角にしたり、サクッとやりたいとき、便利なフリーソフトがあります。
置換もわざわざ正規表現使って、やったりなどめんどくさいので、こちらのソフトで必要な変換だけサクッとできますので、超おすすめ。いろんな置換に対応しているボタン、細かい設定など、本当に役立ちます。
記事としてうまくまとめられなかったのは重々承知ですが、何かありましたらコメントくださいです😓