← 記事一覧へ戻る

Excelマクロ入門|宛名リストから請求書を連続印刷する(コピペOK)

Excelのマクロを使えば、宛名リストの件数ぶんの請求書を、1件ずつ差し替えながら連続印刷できます。マクロを自分で書けなくても大丈夫。開発タブの出し方からコピペで使えるコード、保存やマクロ有効化のつまずきまで、非エンジニア向けに手順で解説します。

請求書の宛名や金額を、セルに1件ずつ打ち直しては印刷、また打ち直しては印刷……を何十回も繰り返していませんか。

取引先が10社、20社とあると、この「差し替えて印刷」の手作業だけで毎月かなりの時間が溶けます。しかも単純作業ほど、宛名の取り違えのようなミスも起きやすいものです。

「マクロを使えば一発なのは聞くけれど、プログラミングなんて無理」。そう思って止まっている人は多いです。でも大丈夫。マクロは自分でゼロから書く必要はなく、用意されたコードを貼って動かすだけでも十分に役立ちます。

この記事では、はじめてのマクロとして「宛名リストの件数ぶん、請求書を連続印刷する」を例に、コピペで使えるコードと手順を、つまずきやすい場所まで解説します。

この記事でわかること

  • 宛名リストから、請求書を件数ぶん連続印刷するマクロ(コピペOK)
  • マクロを使うための「開発タブ」の出し方とコードの貼り方
  • 保存で消える・警告が出るなど、はじめてのマクロでつまずく場所と直し方

結論:一覧+テンプレ+コピペのマクロで連続印刷できる

やることは3つだけです。

  1. 宛名リスト(会社名・金額の一覧)と、請求書のテンプレを1つのファイルに用意する
  2. この記事のマクロを1回だけ貼り付ける
  3. 実行すると、リストの1件目から順にテンプレへ差し替えて、1枚ずつ印刷される

ポイントは、マクロが得意なのは「同じ手順の繰り返し」だということ。宛名を差し替えて印刷、を人間が何十回もやる代わりに、マクロがその繰り返しを一瞬で片づけてくれます。コードの意味が完全にわからなくても、貼って動けばOKです。

そもそもマクロって難しい?

マクロと聞くと身構えますが、役割はシンプルです。関数が「計算して値を出す」道具なのに対し、マクロは「並べ替え・保存・印刷といった操作を自動でやる」道具です。今回の「差し替えて印刷を繰り返す」は、まさにマクロの得意分野です。

関数とマクロの違いをもう少し知りたい人は、こちらで図解しています。

➡️ Excelの関数とマクロの違いは?勤怠表でわかる使い分け

そして大事なこと。マクロは自分で書けなくても使えます。この記事のコードをそのままコピーして貼れば動きます。まずは「動かす体験」から始めれば十分です。

準備:開発タブを表示する

マクロを扱うボタンは、ふだん表示されていない「開発」タブにまとまっています。最初に一度だけ表示させます。

  1. [ファイル]→[オプション]を開く
  2. 左の[リボンのユーザー設定]をクリック
  3. 右側のリストで「開発」にチェックを入れて[OK]

これでリボンに[開発]タブが増えます。

Excelのオプションで「リボンのユーザー設定」を開き、右側の一覧で「開発」にチェックを入れる

Macの場合は、[Excel]→[環境設定]→[リボンとツールバー]で「開発」にチェックを入れます。

コピペで使う:連続印刷マクロ

① 宛名リストとテンプレを用意する

同じファイルの中に、シートを2枚用意します。

  • 「宛名リスト」シート:1行目を見出しにして、A列に会社名、B列に金額を入れます。2行目から下に、印刷したい件数ぶん並べます。
  • 「請求書」シート:いつもの請求書のテンプレ。差し替えたい場所を決めておきます。ここでは会社名を B2、金額を B3 に入れる前提にします(お使いの請求書に合わせて後で変えられます)。

請求書シートには、あらかじめ印刷範囲を設定しておきましょう。[ページレイアウト]→[印刷範囲]→[印刷範囲の設定]で、請求書の枠だけを選んでおくと、余計な部分が印刷されません。

② コードを貼る

[開発]タブ→[Visual Basic]をクリックすると、コードを書く画面(VBE)が開きます。メニューの[挿入]→[標準モジュール]を選び、開いた白い画面に下のコードを丸ごと貼り付けます。

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の差し込み印刷のほうが手軽です。

➡️ Wordの差し込み印刷で請求書を一括作成する方法

Before / After:手作業とどれだけ変わるか

手作業連続印刷マクロ
20件の請求書印刷宛名・金額を打ち直して印刷を20回ボタン1つで20件
宛名の取り違え起きやすいリストどおりで防げる
同僚への引き継ぎ手順の説明が必要「このボタンを押すだけ」

1件あたり1〜2分の手作業でも、20件なら30分前後。毎月それが積み重なります。マクロなら、実行を押して印刷を待つだけです。

まとめ

はじめてのマクロは、「宛名リストから請求書を連続印刷する」から始めるのがおすすめでした。

  • マクロは自分で書けなくても、コピペして動かせばOK
  • 使う前に[開発]タブを表示し、保存は**.xlsm形式**で
  • いきなり全件ではなく、まず2件で試すと安全

「セルを1件ずつ書き換えて印刷」を繰り返していた人は、次に請求書を作るときに、この記事のマクロを貼って試してみてください。最初の1個が動くと、「ほかの繰り返し作業も任せられそう」という感覚がつかめます。


関連記事もどうぞ。


※本記事のExcel画面は、操作の流れがわかるように作成した説明用の再現イメージです。ボタンの配置や表記はお使いのバージョン(Microsoft 365・Excel 2021 など)によって多少異なる場合があります。