エクセルからエクセルへ差し込み印刷ができるマクロを8パターン紹介

アイキャッチ
目次

Word、VLOOKUP不要のエクセルからエクセルへ差し込み印刷(連続印刷)ができるマクロ

差し込み印刷のマクロを組む過程を段階別にコード化しました。単一の差し込みから複数絞り込みの差し込みまで、8種類のパターンを用意しています。マクロ初心者でもコピペで実装できます。

仕事の仕様にあった差し込み印刷のベースになるサンプルがきっと見つかります。是非、コピペして動きを確かめてください。

マクロ初心者の人でも分かるように手順を図説しています。難易度も表しているのでご自身のスキルに合わせて是非、差し込み印刷を実装してみてください。

マクロ実行前の準備

普段マクロを利用していない人は公式リファレンスを読んでマクロのセキュリティレベルを全てのマクロを有効にするに変更してください。

シートを2つ準備して下さい。Sheet1がテーブルデータ、Sheet2が印刷用シートです。

STEP
Sheet1にデータを用意する
テーブルデータの説明用画像。1列目にフィールド名、2列目以降はレコードが入力されている。

差し込むデータはSheet1にテーブル状で入力されているものとします(1列でも可)。1行目にフィールド名、2行目以降がレコード(データ)です。空レコード(行全て空白)は禁止です。

(クリックで画像が拡大します)

STEP
開発タブを表示する
オプションダイアログの画像。「開発」欄にチェックが入っている。

事前準備としてマクロの実行ができるように開発タブを表示して下さい。

ファイルオプションリボンのユーザー設定開発のチェックボックスをオンにします。

STEP
VisualBasicEditorを起動する
Visual Basicの起動方法を説明する画像。詳細は以下。

開発タブでVisual BasicアイコンをクリックするとVBE(VisualBasicEditor)が表示されます。

ショートカットはAlt+F11です。

STEP
標準モジュールを挿入する
VBEで標準モジュールを挿入する方法を説明する画像。

VBEメニューの挿入から標準モジュールをクリックします。これでコードを貼り付ける準備は完了です。

STEP
シートのオブジェクト名を変更する
VBEで各シートのオブジェクト名を変更している画像。Sheet1のオブジェクト名がwsData、Sheet2がwsPrintに変更されている。

プロジェクトウィンドウ内の各シートをクリックし、それぞれプロパティウィンドウ内のオブジェクト名をSheet1wsDataSheet2wsPrintとします。

これで準備は完了です。後は実装したい差し込み印刷を選んでください。

フィールド単位で差し込むマクロ/難易度:簡単

差し込み印刷のデモGIF。指定のフィールドを差し込んで印刷する様子。

Sheet1 B列のデータをSheet2 A1セルに差し込んで印刷します。テンプレートに名前だけ差し込んで印刷する場合はこのマクロがおすすめです。VLOOKUP関数をわざわざ使う必要はありません。

差し込み印刷に連番を付与するマクロ/難易度:簡単

差し込み印刷のデモGIF。連番を付与しながら差し込み印刷する様子。

前項のコードに連番付与の処理を追加しました。Sheet2に連番+レコードを差し込みます。

差し込み印刷をレコード単位で行うマクロ/難易度:簡単

差し込み印刷のデモGIF。レコード単位で差し込み印刷する様子。

レコード(行)単位で差し込んで印刷します。Sheet2の1行目にレコードごと差し込むので、2行目以降に印刷用のフォームを作成し、差し込まれたレコードをリンクさせます。

差し込むレコードを指定するマクロ/難易度:簡単

差し込み印刷のデモGIF。指定したレコードのみ差し込み印刷する様子。

Sheet1のA列に指定用の列を追加して下さい。A列に1が入力されている場合、その行が差し込まれます。入力が全く無い場合は、全てのレコードを印刷します。

差し込みからレコードを除外するマクロ/難易度:簡単

差し込み印刷のデモGIF。指定のレコードを除外して差し込み印刷する様子。

Sheet1のB列に指定用の列を追加して下さい。B列に2が入力されている場合、その行は差し込まれません。指定除外の優先順位は「指定<除外」です。

差し込むレコードを指定のフィールドで絞り込むマクロ/難易度:普通

差し込み印刷のデモGIF。フォームでレコードを絞り込んで差し込み印刷する様子。

レコードをフィールドデータで絞り込んで差し込みます。絞り込み用にユーザーフォームを用意します。

差し込むレコードを指定,除外,絞り込むマクロ/難易度:難しい

差し込み印刷のデモGIF。今までのデモで紹介した機能が全て実装されている。

今までのコードを組み合わせたものです。前項のコードは絞り込みをする前提のコードですが、本コードは全てのレコードを印刷する、レコードを絞り込んで印刷する、指定レコードのみ印刷するの3パターンを選択できます。

ユーザーフォームは、パターン選択用のオプションボタンとその他の処理用にコマンドボタンを追加しています。

難易度的にマクロ経験がある程度ないと実装は難しいです。経験者前提で図説・解説も端折っています。

1枚に複数のレコードを差し込むマクロ/難易度:難しい

差し込み印刷のデモGIF。一枚に差し込むレコード件数を指定できる差し込み印刷の様子。点検表のようなものに8名ずつの名前が差し込まれている。

このコードは差し込む件数を設定できます。1枚の帳票にレコードを複数差し込めます。1枚の用紙に複数名記入させるような帳票に使います。人数が割り切れない場合、最終ページで0を差し込んで最後まで埋める仕様です。

難易度的にマクロ経験がある程度ないと実装は難しいです。経験者前提で図説・解説も端折っています。

全部で8パターンのコードを紹介しました。最後に紹介したコードは、少し改変すればラベル発行などにも応用できると思います。是非試してみて下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次