本文へ移動
Takumi Tokunaga
Blog

宛名自動作成: Googleスプレッドシートで封筒の宛名PDFを作る

公開日 · 2026/06/12

トピック

googlesheets
gas
pdf
automation

封筒へ宛名や差出人を書く作業は、件数が少なくても意外と手間がかかります。

住所を手書きすると時間がかかりますし、郵便番号、番地、建物名、会社名、部署名、氏名を書き間違える可能性もあります。会社やチームでよく使う宛先がある場合でも、毎回別の人が同じ住所を入力し直していると、表記ゆれや転記ミスが起きやすくなります。

そこで、Google スプレッドシートに宛先や差出人を登録しておき、必要な行をチェックするだけで封筒印刷用の PDF を作成できる 宛名自動作成 を作りました。

公開フォルダ: 宛名自動作成

解決したい課題

このツールで解決したい課題は、封筒へ住所や名前を手書きする手間と、記載ミスを減らすことです。

具体的には、次のような場面を想定しています。

  • 宛名や差出人を毎回手書きするのが面倒
  • 郵便番号、住所、建物名、会社名、部署名、氏名を書き間違えたくない
  • よく使う宛先や差出人をチームで共有して再利用したい
  • 複数の宛先をまとめて印刷したい
  • 外部サービスに住所録を預けず、自分の Google Drive 内で管理したい

公開しているスプレッドシートは、テンプレートとしてコピーして使う想定です。コピー後のデータは利用者自身の Google Drive に保存されるため、公開元のスプレッドシートに宛先情報を書き込む必要はありません。

何を作ったのか

Google スプレッドシートを住所録と入力画面にして、封筒に印刷するための PDF を出力するツールです。

対応している出力は次の 3 種類です。

  • 長形3号
  • 洋形長3号
  • 角形2号

宛先と差出人はシートを分けています。

  • 個人_宛名_様_表面
  • 法人_宛名_様_表面
  • 法人_宛名_御中_表面
  • 個人_差出人_裏面
  • 法人_差出人_裏面

宛名と差出人を同じ設定項目で入れ替えられるようにすると、差出人を宛名として印刷するような事故が起きやすくなります。そのため、どのシートを印刷するかによって表面・裏面を固定しています。

主な特徴は次の通りです。

  • スプレッドシートをコピーして、自分の Google Drive 内で使える
  • 宛先や差出人を住所録として保存し、チームで共有・再利用できる
  • 郵便番号から都道府県・市区町村・町域を自動補完できる
  • チェックした複数行を、1 つの PDF にまとめて出力できる
  • 個人宛、法人宛、法人担当者宛、個人差出人、法人差出人を分けて管理できる
  • 長形3号、洋形長3号、角形2号の封筒サイズに対応している

実際の PDF は A4 として出力し、その中に封筒サイズの枠を置いています。長形3号の場合は、A4 の右上に封筒の右上を合わせる形にして、左辺と下辺だけを切り取り線にしています。

長形3号の法人宛名PDF

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

長形3号の差出人PDF

使い方

基本的な使い方は、スプレッドシートをコピーして、自分の宛先や差出人を登録し、印刷したい行にチェックを入れるだけです。

1. スプレッドシートをコピーする

公開フォルダを開き、フォルダ内のスプレッドシートを開きます。その後、ファイル > コピーを作成 から自分の Google Drive にコピーします。

公開元のシートへ自分の住所録を書き込むのではなく、コピーしたシートを自分用の作業ファイルとして使います。会社やチームで使う場合は、コピーしたスプレッドシートをチームの Drive や共有フォルダに置くと、よく使う宛先や差出人を再利用しやすくなります。

2. 宛先または差出人を入力する

用途に応じて、次のシートに情報を入力します。

  • 個人宛に送る: 個人_宛名_様_表面
  • 会社や部署宛に送る: 法人_宛名_御中_表面
  • 会社の特定担当者宛に送る: 法人_宛名_様_表面
  • 個人の差出人を印刷する: 個人_差出人_裏面
  • 法人担当者の差出人を印刷する: 法人_差出人_裏面

郵便番号を入力すると、都道府県・市区町村・町域が自動補完されます。あとは番地以降、建物名等、氏名、法人名、部署名など、必要な項目を入力します。

入力シートは住所録として使えます。必要な行だけを左端のチェックボックスで選ぶため、よく使う宛先を残したまま、今回印刷する相手だけを選択できます。

宛名シートで印刷したい行を選ぶ

3. 印刷したい行にチェックを入れる

宛名シートでは 出力、差出人シートでは 使用 のチェックを入れた行が印刷対象になります。

複数行にチェックを入れると、1 つの PDF に複数ページとしてまとめて出力されます。たとえば 5 件の宛先にチェックを入れると、5 ページ分の PDF が作成されます。

4. 印刷 シートで出力する

印刷 シートで、印刷対象と封筒サイズを選びます。

印刷対象は、個人宛名、法人宛名、法人担当者宛名、個人差出人、法人差出人から選びます。封筒サイズは、長形3号、洋形長3号、角形2号から選びます。

まず、印刷対象 でどのシートを出力するかを選びます。宛名と差出人はここで切り替えますが、実際に印刷されるのは各シートでチェック済みの行だけです。

印刷対象をプルダウンで選ぶ

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

封筒サイズをプルダウンで選ぶ

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

印刷するにチェックを入れてPDFを作成する

設定用の内部 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 つを同じシートで扱うと、敬称や表示ルールが曖昧になります。そこで、法人_宛名_御中_表面法人_宛名_様_表面 を分けました。

担当者宛の場合は、法人名・部署名に加えて、役職名と担当者名を出します。役職名は担当者名と同じ宛名ブロックに入れ、担当者名より少し小さい文字サイズで配置します。

長形3号の個人宛名PDF

縦書きの変換

縦書きでは、横書き住所をそのまま流すと不自然になります。

このツールでは、PDF 出力時に次の変換を行っています。

  • 算用数字を漢数字に変換する
  • 番地の - を縦線として扱う
  • 建物名などに含まれる長音 も縦線として扱う
  • 氏名と の間には半角スペースを入れ、その後に両端揃えする

入力データは横書きのまま持ち、表示時だけ縦書き用に変換します。元データを変換済み文字列で保存しないので、横書きテンプレートにも同じデータを使えます。

文字サイズと行間を動的に調整する

封筒印刷で難しかったのは、住所や法人名が長い場合です。

固定サイズで出すと、次のような問題が起きます。

  • 住所が封筒枠の外へ出る
  • 建物名と法人名が重なる
  • 役職名と氏名が詰まりすぎる
  • 文字を小さくしすぎて読みにくくなる

そこで、位置はできるだけ固定し、文字数に応じて行間と文字サイズを調整するようにしました。先に行間を詰め、それでも入らない場合だけ文字サイズを下げます。

法人担当者宛名では、住所、建物名、法人名、部署名の最大 4 行を想定しています。建物名と会社名を無理に結合せず、別の情報として扱ったまま、使える範囲に収めます。

横書き封筒にも対応する

洋形長3号は横書きで出力します。

郵便番号枠は右側に縦並びで置き、住所は上部、氏名は封筒の中央寄りに配置しています。住所が 2 行になっても氏名と重ならないよう、住所の行間と表示範囲を調整しています。

洋形長3号の法人担当者宛名PDF

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

洋形長3号の法人差出人PDF

Apps Script の構成

スプレッドシート側は Google Apps Script で実装しています。

大まかな役割は次の通りです。

Google Sheets
  ├─ 入力シート
  ├─ 印刷シート
  ├─ 設定シート
  └─ ログシート
      │
      ▼
Google Apps Script
  ├─ 郵便番号補完
  ├─ 入力行の取得
  ├─ テンプレート選択
  ├─ HTML生成
  ├─ PDF変換
  └─ Drive保存

PDF は、HTML を組み立ててから PDF に変換しています。封筒サイズの枠、郵便番号枠、宛名・差出人のテキストは CSS の mm 指定で配置します。

PDF は Drive の 宛名自動作成/PDF フォルダへ保存し、スプレッドシートの 印刷 シートに URL を返します。

長形3号の差出人をA4内に配置したPDF

検証

ローカルでは、Apps Script の純粋関数に寄せられる部分を Node.js のテストで確認しています。

npm test
npm run check:gas
npm run bundle

確認している主な内容は次の通りです。

  • 郵便番号の正規化
  • 住所補完レスポンスの正規化
  • チェック済み行だけを出力すること
  • 宛名・差出人の複数ページ出力
  • シート名や設定項目の移行
  • 縦書き変換
  • 文字数が多い場合の文字サイズ調整
  • GAS ファイルの構文チェック
  • Apps Script へ貼り付ける結合版の生成

公開用のサンプルでは、実在の個人名や自宅住所のような情報が入らないように、架空の住所・法人・氏名だけを使っています。

作ってみてよかったこと

一番大きかったのは、入力と印刷ロジックを分けたことです。

入力シートには、住所や氏名などの一次データだけを置きます。縦書きにするか、横書きにするか、表面に出すか、裏面に出すかは、PDF 出力時に決めます。

この分け方にすると、シートの列が増えすぎません。利用者も、宛名なのか差出人なのか、どの封筒サイズなのかを最低限選ぶだけで済みます。

封筒印刷は細かい位置調整が多いですが、スプレッドシートを入力 UI にすると、住所録としての扱いやすさと PDF 出力の自動化を両立しやすいと感じました。

©

GitHub