Excelマクロ入門|宛名リストから請求書を連続印刷する(コピペOK)
Excelのマクロを使えば、宛名リストの件数ぶんの請求書を、1件ずつ差し替えながら連続印刷できます。マクロを自分で書けなくても大丈夫。開発タブの出し方からコピペで使えるコード、保存やマクロ有効化のつまずきまで、非エンジニア向けに手順で解説します。
請求書の宛名や金額を、セルに1件ずつ打ち直しては印刷、また打ち直しては印刷……を何十回も繰り返していませんか。
取引先が10社、20社とあると、この「差し替えて印刷」の手作業だけで毎月かなりの時間が溶けます。しかも単純作業ほど、宛名の取り違えのようなミスも起きやすいものです。
「マクロを使えば一発なのは聞くけれど、プログラミングなんて無理」。そう思って止まっている人は多いです。でも大丈夫。マクロは自分でゼロから書く必要はなく、用意されたコードを貼って動かすだけでも十分に役立ちます。
この記事では、はじめてのマクロとして「宛名リストの件数ぶん、請求書を連続印刷する」を例に、コピペで使えるコードと手順を、つまずきやすい場所まで解説します。
この記事でわかること
- 宛名リストから、請求書を件数ぶん連続印刷するマクロ(コピペOK)
- マクロを使うための「開発タブ」の出し方とコードの貼り方
- 保存で消える・警告が出るなど、はじめてのマクロでつまずく場所と直し方
結論:一覧+テンプレ+コピペのマクロで連続印刷できる
やることは3つだけです。
- 宛名リスト(会社名・金額の一覧)と、請求書のテンプレを1つのファイルに用意する
- この記事のマクロを1回だけ貼り付ける
- 実行すると、リストの1件目から順にテンプレへ差し替えて、1枚ずつ印刷される
ポイントは、マクロが得意なのは「同じ手順の繰り返し」だということ。宛名を差し替えて印刷、を人間が何十回もやる代わりに、マクロがその繰り返しを一瞬で片づけてくれます。コードの意味が完全にわからなくても、貼って動けばOKです。
そもそもマクロって難しい?
マクロと聞くと身構えますが、役割はシンプルです。関数が「計算して値を出す」道具なのに対し、マクロは「並べ替え・保存・印刷といった操作を自動でやる」道具です。今回の「差し替えて印刷を繰り返す」は、まさにマクロの得意分野です。
関数とマクロの違いをもう少し知りたい人は、こちらで図解しています。
➡️ Excelの関数とマクロの違いは?勤怠表でわかる使い分け
そして大事なこと。マクロは自分で書けなくても使えます。この記事のコードをそのままコピーして貼れば動きます。まずは「動かす体験」から始めれば十分です。
準備:開発タブを表示する
マクロを扱うボタンは、ふだん表示されていない「開発」タブにまとまっています。最初に一度だけ表示させます。
- [ファイル]→[オプション]を開く
- 左の[リボンのユーザー設定]をクリック
- 右側のリストで「開発」にチェックを入れて[OK]
これでリボンに[開発]タブが増えます。

Macの場合は、[Excel]→[環境設定]→[リボンとツールバー]で「開発」にチェックを入れます。
コピペで使う:連続印刷マクロ
① 宛名リストとテンプレを用意する
同じファイルの中に、シートを2枚用意します。
- 「宛名リスト」シート:1行目を見出しにして、A列に会社名、B列に金額を入れます。2行目から下に、印刷したい件数ぶん並べます。
- 「請求書」シート:いつもの請求書のテンプレ。差し替えたい場所を決めておきます。ここでは会社名を
B2、金額をB3に入れる前提にします(お使いの請求書に合わせて後で変えられます)。
請求書シートには、あらかじめ印刷範囲を設定しておきましょう。[ページレイアウト]→[印刷範囲]→[印刷範囲の設定]で、請求書の枠だけを選んでおくと、余計な部分が印刷されません。
② コードを貼る
[開発]タブ→[Visual Basic]をクリックすると、コードを書く画面(VBE)が開きます。メニューの[挿入]→[標準モジュール]を選び、開いた白い画面に下のコードを丸ごと貼り付けます。

Sub 請求書を連続印刷()
Dim リスト As Worksheet
Dim テンプレ As Worksheet
Dim 最終行 As Long
Dim i As Long
' 使うシートを指定(名前が違うときはここを直す)
Set リスト = Worksheets("宛名リスト")
Set テンプレ = Worksheets("請求書")
' 宛名リストの最終行を調べる(A列のいちばん下)
最終行 = リスト.Cells(リスト.Rows.Count, "A").End(xlUp).Row
' 2行目(1件目)から最後まで、1件ずつ繰り返す
For i = 2 To 最終行
' テンプレの宛名・金額を、リストの1件に差し替える
テンプレ.Range("B2").Value = リスト.Cells(i, "A").Value
テンプレ.Range("B3").Value = リスト.Cells(i, "B").Value
' 請求書シートを1枚印刷する
テンプレ.PrintOut
Next i
MsgBox "印刷が終わりました(" & (最終行 - 1) & " 件)"
End Sub
コードの中で覚えておくとよいのは3か所だけです。
Worksheets("宛名リスト")Worksheets("請求書")… シート名。自分のファイルに合わせて変えるRange("B2")Range("B3")… 差し替えるセル。請求書の宛名・金額の位置に合わせて変えるFor i = 2 To 最終行… 2行目(見出しの次)から最後まで繰り返す、という意味
③ 実行する
いきなり全件を印刷すると、間違っていたとき大量の紙が出てしまいます。最初は宛名リストを2件だけにして試しましょう。
実行は、VBEの画面で[実行]→[Sub/ユーザーフォームの実行]、またはExcelに戻って[開発]→[マクロ]→[請求書を連続印刷]→[実行]でもできます。
毎回メニューから探すのが面倒なら、ボタンに割り当てておくと便利です。[挿入]→[図形]で四角を描き、右クリック→[マクロの登録]→[請求書を連続印刷]を選べば、そのボタンを押すだけで実行できます。パソコンが苦手な同僚にも「このボタンを押すだけ」と渡せます。

つまずきやすいポイント
保存したらマクロが消えた
Excelの通常の保存形式(.xlsx)は、マクロを保存できません。[名前を付けて保存]で、ファイルの種類を「Excel マクロ有効ブック(.xlsm)」に変えて保存してください。これを知らずに上書き保存すると、せっかくのマクロが消えてしまいます。
開いたら「セキュリティの警告」が出る
マクロ入りのファイルを開くと、上部に「セキュリティの警告 マクロが無効にされました」と黄色い帯が出ることがあります。自分で作った信頼できるファイルなら、[コンテンツの有効化]を押せばマクロが使えます。逆に、身に覚えのないファイルで安易に有効化しないことも大切です(詳しくはFAQで触れます)。
印刷範囲がずれる・余計な部分まで印刷される
請求書シートに印刷範囲が設定されていないと、シート全体が印刷されてしまいます。①で触れたとおり、[ページレイアウト]→[印刷範囲の設定]で、請求書の枠だけを範囲にしておきましょう。
よくある質問(FAQ)
Q. マクロってウイルスみたいで危なくないですか?
マクロ自体は「操作を自動化する仕組み」で、危険なものではありません。ただし、知らない相手から届いたファイルのマクロには注意が必要です。悪意あるマクロが仕込まれている場合があるためです。自分で作ったファイルや、信頼できる相手のファイルだけ「コンテンツの有効化」をする、と覚えておけば安全に使えます。
Q. Macでも使えますか?
使えます。開発タブは[Excel]→[環境設定]→[リボンとツールバー]から表示でき、VBEは option + F11 でも開けます。コードはそのまま使えますが、印刷まわりのダイアログの見た目はWindowsと少し違います。基本の流れは同じです。
Q. 印刷ではなく、PDFで1件ずつ保存したいのですが
宛名ごとに別々のPDFに分けたい場合は、マクロで対応できます(PrintOut の代わりに、シートをPDFとして書き出す命令に変えます)。ただし少し長くなるので、まずは「宛先の違う請求書をまとめて作る」だけなら、Wordの差し込み印刷のほうが手軽です。
Before / After:手作業とどれだけ変わるか
| 手作業 | 連続印刷マクロ | |
|---|---|---|
| 20件の請求書印刷 | 宛名・金額を打ち直して印刷を20回 | ボタン1つで20件 |
| 宛名の取り違え | 起きやすい | リストどおりで防げる |
| 同僚への引き継ぎ | 手順の説明が必要 | 「このボタンを押すだけ」 |
1件あたり1〜2分の手作業でも、20件なら30分前後。毎月それが積み重なります。マクロなら、実行を押して印刷を待つだけです。
まとめ
はじめてのマクロは、「宛名リストから請求書を連続印刷する」から始めるのがおすすめでした。
- マクロは自分で書けなくても、コピペして動かせばOK
- 使う前に[開発]タブを表示し、保存は**
.xlsm形式**で - いきなり全件ではなく、まず2件で試すと安全
「セルを1件ずつ書き換えて印刷」を繰り返していた人は、次に請求書を作るときに、この記事のマクロを貼って試してみてください。最初の1個が動くと、「ほかの繰り返し作業も任せられそう」という感覚がつかめます。
関連記事もどうぞ。
- Excelの関数とマクロの違いは?勤怠表でわかる使い分け(マクロってそもそも何?を図解で)
- 毎月の請求書、もう手作りしない|ツールと差し込み印刷で時短(件数別のラクなやり方)
- Wordの差し込み印刷で請求書を一括作成する方法(PDFでまとめて出したい人へ)
※本記事のExcel画面は、操作の流れがわかるように作成した説明用の再現イメージです。ボタンの配置や表記はお使いのバージョン(Microsoft 365・Excel 2021 など)によって多少異なる場合があります。