宛名自動作成: Googleスプレッドシートで封筒の宛名PDFを作る
Published · Jun 12, 2026
Topics
封筒へ宛名や差出人を書く作業は、件数が少なくても意外と手間がかかります。
住所を手書きすると時間がかかりますし、郵便番号、番地、建物名、会社名、部署名、氏名を書き間違える可能性もあります。会社やチームでよく使う宛先がある場合でも、毎回別の人が同じ住所を入力し直していると、表記ゆれや転記ミスが起きやすくなります。
そこで、Google スプレッドシートに宛先や差出人を登録しておき、必要な行をチェックするだけで封筒印刷用の PDF を作成できる 宛名自動作成 を作りました。
公開フォルダ: 宛名自動作成
解決したい課題
このツールで解決したい課題は、封筒へ住所や名前を手書きする手間と、記載ミスを減らすことです。
具体的には、次のような場面を想定しています。
- 宛名や差出人を毎回手書きするのが面倒
- 郵便番号、住所、建物名、会社名、部署名、氏名を書き間違えたくない
- よく使う宛先や差出人をチームで共有して再利用したい
- 複数の宛先をまとめて印刷したい
- 外部サービスに住所録を預けず、自分の Google Drive 内で管理したい
公開しているスプレッドシートは、テンプレートとしてコピーして使う想定です。コピー後のデータは利用者自身の Google Drive に保存されるため、公開元のスプレッドシートに宛先情報を書き込む必要はありません。
何を作ったのか
Google スプレッドシートを住所録と入力画面にして、封筒に印刷するための PDF を出力するツールです。
対応している出力は次の 3 種類です。
- 長形3号
- 洋形長3号
- 角形2号
宛先と差出人はシートを分けています。
個人_宛名_様_表面法人_宛名_様_表面法人_宛名_御中_表面個人_差出人_裏面法人_差出人_裏面
宛名と差出人を同じ設定項目で入れ替えられるようにすると、差出人を宛名として印刷するような事故が起きやすくなります。そのため、どのシートを印刷するかによって表面・裏面を固定しています。
主な特徴は次の通りです。
- スプレッドシートをコピーして、自分の Google Drive 内で使える
- 宛先や差出人を住所録として保存し、チームで共有・再利用できる
- 郵便番号から都道府県・市区町村・町域を自動補完できる
- チェックした複数行を、1 つの PDF にまとめて出力できる
- 個人宛、法人宛、法人担当者宛、個人差出人、法人差出人を分けて管理できる
- 長形3号、洋形長3号、角形2号の封筒サイズに対応している
実際の PDF は A4 として出力し、その中に封筒サイズの枠を置いています。長形3号の場合は、A4 の右上に封筒の右上を合わせる形にして、左辺と下辺だけを切り取り線にしています。

裏面は逆に、A4 の左下に封筒の左下を合わせます。用紙端に合わせる辺は切り取り不要なので、必要な線だけを出しています。

使い方
基本的な使い方は、スプレッドシートをコピーして、自分の宛先や差出人を登録し、印刷したい行にチェックを入れるだけです。
1. スプレッドシートをコピーする
公開フォルダを開き、フォルダ内のスプレッドシートを開きます。その後、ファイル > コピーを作成 から自分の Google Drive にコピーします。
公開元のシートへ自分の住所録を書き込むのではなく、コピーしたシートを自分用の作業ファイルとして使います。会社やチームで使う場合は、コピーしたスプレッドシートをチームの Drive や共有フォルダに置くと、よく使う宛先や差出人を再利用しやすくなります。
2. 宛先または差出人を入力する
用途に応じて、次のシートに情報を入力します。
- 個人宛に送る:
個人_宛名_様_表面 - 会社や部署宛に送る:
法人_宛名_御中_表面 - 会社の特定担当者宛に送る:
法人_宛名_様_表面 - 個人の差出人を印刷する:
個人_差出人_裏面 - 法人担当者の差出人を印刷する:
法人_差出人_裏面
郵便番号を入力すると、都道府県・市区町村・町域が自動補完されます。あとは番地以降、建物名等、氏名、法人名、部署名など、必要な項目を入力します。
入力シートは住所録として使えます。必要な行だけを左端のチェックボックスで選ぶため、よく使う宛先を残したまま、今回印刷する相手だけを選択できます。

3. 印刷したい行にチェックを入れる
宛名シートでは 出力、差出人シートでは 使用 のチェックを入れた行が印刷対象になります。
複数行にチェックを入れると、1 つの PDF に複数ページとしてまとめて出力されます。たとえば 5 件の宛先にチェックを入れると、5 ページ分の PDF が作成されます。
4. 印刷 シートで出力する
印刷 シートで、印刷対象と封筒サイズを選びます。
印刷対象は、個人宛名、法人宛名、法人担当者宛名、個人差出人、法人差出人から選びます。封筒サイズは、長形3号、洋形長3号、角形2号から選びます。
まず、印刷対象 でどのシートを出力するかを選びます。宛名と差出人はここで切り替えますが、実際に印刷されるのは各シートでチェック済みの行だけです。

次に、出力テンプレート で封筒サイズを選びます。ここではサイズだけを選ぶので、表面・裏面や宛名・差出人を取り違えにくくしています。

最後に 印刷する にチェックを入れると、PDF が作成され、シート上に PDF の URL が表示されます。

設定用の内部 ID は入力させません。たとえば FRONT_NAGA3 のようなテンプレート ID はコード側で扱い、利用者は 長形3号、洋形長3号、角形2号 のような表示名だけを選びます。
5. PDF を開いて印刷する
作成された PDF を開き、プリンターで印刷します。
PDF は A4 用紙として作成しています。封筒サイズの枠線に合わせて、必要な辺だけを切り取ったり、封筒の位置を確認したりできます。印刷時はブラウザや PDF ビューワー側で拡大縮小が入らないよう、倍率 100% で確認します。
郵便番号で住所を補完する
住所入力は、郵便番号を起点にしています。
郵便番号を入力すると、編集トリガーで都道府県・市区町村・町域を自動補完します。利用者は番地以降や建物名を追記すればよい形です。
当初は日本郵便のデジタルアドレス API も検討しましたが、固定 IP や認証まわりの運用が重くなります。今回の用途では郵便番号だけで十分なので、ZIPCODA API を使い、API が使えない場合は静的な郵便番号 JSON を予備として使う構成にしました。
データの持ち方
住所は重複した列を持たないようにしました。
たとえば、都道府県・市区町村・町域があるのに、別途 住所1、住所2、住所3 のような列へ同じ内容をもう一度入れると、どちらが正なのか分からなくなります。
現在の入力は、印刷に必要な一次データを中心にしています。
- 郵便番号
- 都道府県
- 市区町村
- 町域
- 番地以降
- 建物名等
- 氏名、法人名、部署名、役職名、担当者名
印刷用の住所行は、PDF 出力時に組み立てます。これにより、縦書き・横書き・表面・裏面でレイアウトが変わっても、入力データそのものは増やさずに済みます。
法人宛名と担当者宛名を分ける
法人宛には、大きく 2 種類あります。
- 会社や部署宛:
御中 - 会社の特定担当者宛:
様
この 2 つを同じシートで扱うと、敬称や表示ルールが曖昧になります。そこで、法人_宛名_御中_表面 と 法人_宛名_様_表面 を分けました。
担当者宛の場合は、法人名・部署名に加えて、役職名と担当者名を出します。役職名は担当者名と同じ宛名ブロックに入れ、担当者名より少し小さい文字サイズで配置します。

縦書きの変換
縦書きでは、横書き住所をそのまま流すと不自然になります。
このツールでは、PDF 出力時に次の変換を行っています。
- 算用数字を漢数字に変換する
- 番地の
-を縦線として扱う - 建物名などに含まれる長音
ーも縦線として扱う - 氏名と
様の間には半角スペースを入れ、その後に両端揃えする
入力データは横書きのまま持ち、表示時だけ縦書き用に変換します。元データを変換済み文字列で保存しないので、横書きテンプレートにも同じデータを使えます。
文字サイズと行間を動的に調整する
封筒印刷で難しかったのは、住所や法人名が長い場合です。
固定サイズで出すと、次のような問題が起きます。
- 住所が封筒枠の外へ出る
- 建物名と法人名が重なる
- 役職名と氏名が詰まりすぎる
- 文字を小さくしすぎて読みにくくなる
そこで、位置はできるだけ固定し、文字数に応じて行間と文字サイズを調整するようにしました。先に行間を詰め、それでも入らない場合だけ文字サイズを下げます。
法人担当者宛名では、住所、建物名、法人名、部署名の最大 4 行を想定しています。建物名と会社名を無理に結合せず、別の情報として扱ったまま、使える範囲に収めます。
横書き封筒にも対応する
洋形長3号は横書きで出力します。
郵便番号枠は右側に縦並びで置き、住所は上部、氏名は封筒の中央寄りに配置しています。住所が 2 行になっても氏名と重ならないよう、住所の行間と表示範囲を調整しています。

差出人も横書きに対応しています。法人の差出人で担当者名がない場合は、法人名と部署名を差出人名として使います。

Apps Script の構成
スプレッドシート側は Google Apps Script で実装しています。
大まかな役割は次の通りです。
Google Sheets
├─ 入力シート
├─ 印刷シート
├─ 設定シート
└─ ログシート
│
▼
Google Apps Script
├─ 郵便番号補完
├─ 入力行の取得
├─ テンプレート選択
├─ HTML生成
├─ PDF変換
└─ Drive保存
PDF は、HTML を組み立ててから PDF に変換しています。封筒サイズの枠、郵便番号枠、宛名・差出人のテキストは CSS の mm 指定で配置します。
PDF は Drive の 宛名自動作成/PDF フォルダへ保存し、スプレッドシートの 印刷 シートに URL を返します。

検証
ローカルでは、Apps Script の純粋関数に寄せられる部分を Node.js のテストで確認しています。
npm test
npm run check:gas
npm run bundle
確認している主な内容は次の通りです。
- 郵便番号の正規化
- 住所補完レスポンスの正規化
- チェック済み行だけを出力すること
- 宛名・差出人の複数ページ出力
- シート名や設定項目の移行
- 縦書き変換
- 文字数が多い場合の文字サイズ調整
- GAS ファイルの構文チェック
- Apps Script へ貼り付ける結合版の生成
公開用のサンプルでは、実在の個人名や自宅住所のような情報が入らないように、架空の住所・法人・氏名だけを使っています。
作ってみてよかったこと
一番大きかったのは、入力と印刷ロジックを分けたことです。
入力シートには、住所や氏名などの一次データだけを置きます。縦書きにするか、横書きにするか、表面に出すか、裏面に出すかは、PDF 出力時に決めます。
この分け方にすると、シートの列が増えすぎません。利用者も、宛名なのか差出人なのか、どの封筒サイズなのかを最低限選ぶだけで済みます。
封筒印刷は細かい位置調整が多いですが、スプレッドシートを入力 UI にすると、住所録としての扱いやすさと PDF 出力の自動化を両立しやすいと感じました。
