住所2が空欄の宛先だけ、住所と氏名の間に1行分の隙間ができる。この場合は、住所2の値だけでなく、その前後にある改行や固定文字を確認します。空のフィールドと、空の段落は同じものではありません。
この記事では、住所1・住所2が既に別の列になっている名簿を使い、住所2があるときだけ改行して表示する方法を説明します。操作例はWindows版デスクトップWord(Microsoft 365/2024/2021)です。
ADVERTISEMENT
1. 空白行なのか、段落の余白なのかを見分ける
文書を別名保存し、[ホーム]の[編集記号の表示/非表示]をオンにします。住所の間に段落記号が2個あるのか、1個の段落に大きな段落後の間隔が付いているのかを見てください。表のセルで宛名を配置している場合は、行の高さやセル内の余白でも隙間が生じます。
| 見える状態 | 先に直す場所 |
|---|---|
| 住所2の位置に空の段落がある | 住所2の前後の改行と、条件付きの出力 |
| 空の段落はないが間隔が広い | 住所段落の段落前・段落後の間隔 |
| 住所2が空でも「建物名:」が残る | 見出し文字も住所2と同じ条件の中へ入れる |
| どの宛先でもセル内の高さが同じ | 表の行高と上下の配置。空白行の除去とは別に調整する |
宛名全体の位置を固定したいのか、住所2がない分だけ氏名を上へ詰めたいのかも決めます。次の方法は後者です。氏名の印刷位置を全員同じ高さに保つ帳票には、そのまま適用しません。
2. 住所2と改行をまとめて条件付きにする
架空の宛先「青葉市桜町1-2」「桜ハイツ201」「山田花子」で考えます。住所2がある場合は3行、住所2がない場合は住所1と氏名の2行にします。住所1の後に無条件の改行を置かず、住所2の直前の改行をIFフィールドの中へ入れるのが要点です。

完成するコードの構造は次のとおりです。引用符の直後から住所2の前までにある改行は、WordでShift+Enterを押して挿入する実際の改行です。「改行」という文字やHTMLのbrタグを入力するのではありません。
{ MERGEFIELD 住所1 }{ IF "{ MERGEFIELD 住所2 }" = "" "" "
{ MERGEFIELD 住所2 }" }
{ MERGEFIELD 氏名 } 様
- [差し込みフィールドの挿入]で住所1を置き、そのすぐ後ろでCtrl+F9を押して外側のIF用のフィールドを作ります。
- 中に
IF "と入力し、[差し込みフィールドの挿入]から住所2を入れます。Alt+F9でコードを表示すると、内側にMERGEFIELDが入ったことを確認できます。 - 内側のフィールドの後ろへ
" = "" "" "と入力します。これは「住所2が空なら何も出さない」という比較と、空でないときの文字列の開始です。 - 最後の引用符の直後でShift+Enterを押し、もう一度住所2の差し込みフィールドを挿入します。その後ろへ閉じる引用符
"を入力します。 - 外側のIFの閉じ括弧の後ろへ移動してEnterを押し、次の段落に氏名フィールドと「 様」を配置します。
- Alt+F9で結果表示へ戻し、[結果のプレビュー]で住所2がある人とない人を切り替えます。結合後の文書でも氏名の前に余計な空行がないことを確認します。
コードの中括弧は普通の文字として入力してもフィールドになりません。外側はCtrl+F9、内側は[差し込みフィールドの挿入]で作ります。コードを貼り付けるだけで完成したと判断せず、入れ子を確認してください。既存の住所2行を残したままこの構造を追加すると、住所2が二重に出るので置き換える範囲にも注意します。
3. 空欄に見える元データを確認する
住所2が半角スペース1個の行は、何も入っていない行とは異なります。Excelで該当セルを選び、数式バーを確認します。建物名のない宛先に入っている不要な空白だけを除き、住所に必要な空白や号室をまとめて消さないでください。
数式で空文字を返している列、数値と文字列が混在している列は、接続後の値も確認が必要です。Wordの宛先リストに0が見えるなら、空文字との比較だけでは除外できません。0を建物名として使わない運用か確認し、差し込み用の列で空欄を整理します。氏名や住所1まで空の行は、レイアウトを詰めて解決する対象ではなく、発送前に修正・保留する宛先です。
Excelを直したら保存し、Wordの[アドレス帳の編集]でデータソースの[更新]を実行します。新しい列が出てこないときは[宛先の選択]で保存先とシートを確認して再接続します。F9によるフィールド更新だけを、Excelの再読込の代わりにしないでください。
4. 詰まらないときは改行の外側を確認する
IFが空文字を返しても、その外側に残したEnterやShift+Enterは別の改行です。住所1とIFの間、IFと氏名の間を順に確認し、氏名へ移るための1回分だけを残します。[ルール]に「文字列を差し込まない行を印刷しない」という項目を探す必要はありません。
「建物名:」や括弧を付けたい場合も、住所2があるときに出す文字列の中へ入れます。逆に、会社名がなくても宛名全体を除外する必要はありません。[レコードのスキップ]は宛先そのものを外すルールなので、1行だけ詰める目的には使いません。
行間を極端な固定値にすると文字の上端や下端が欠けます。空行を処理した後に、必要な住所段落だけの間隔を調整します。ラベルなら1枚目の変更を他のラベルへ反映し、次のレコードのフィールドを壊していないかも確認してください。
5. 結合結果で確かめる3種類の宛先
| 確認用データ | 期待する結果 |
|---|---|
| 住所2=桜ハイツ201 | 住所1、建物名、氏名の順に表示される |
| 住所2=空欄 | 住所1の次の行に氏名が来る |
| 住所2=長い建物名と号室 | 折り返しても氏名と重ならず、文字が欠けない |
[完了と差し込み]から[個々のドキュメントの編集]で確認用の宛先を結合し、印刷プレビューで見比べます。PDFを配る場合は書き出したPDFでも同じ3件を確認します。空白の違いを直すためにアクセシビリティ用タグを外す必要はありません。
6. 空欄の処理と住所の分割は別の作業
住所2がないときだけ詰めるには、住所2とその直前の改行を同じ条件の中へ入れます。空欄判定、改行位置、段落間隔の順に見れば、文字を小さくして隙間をごまかす必要がなくなります。
そもそも住所が1列にまとまっていて建物名の前で区切れない場合は、住所を2列に分けて改行位置を決める方法から進めてください。IFの基本的な条件指定はMicrosoftの差し込み印刷のルールでも確認できます。
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Excel】オートフィル(右下の+)が効かない!ドラッグできない時のオプション有効化設定
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Outlook】祝日が表示されない・重複する時の対処|追加方法と対象年の確認
- 【Excel】COUNTAでセルの個数を数える方法|空文字・空白・COUNTとの違い
- 【Word】差し込み印刷の金額にカンマを付ける方法|小数・0・空欄の確認
- 保存せずに閉じたExcel・Wordを復元する方法|自動回復・未保存ファイル・履歴の確認
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Outlook】受信メールを自動で別アカウントへ転送するルール設定手順
- 【Outlook】メール送信時にエラーになる「送信不能」の原因切り分け
