こんな方に役立つ情報です
- エクセルに差し込み印刷の機能がなくて困っている
- エクセルで宛名印刷をしたい
- Excelと同じフォーマットのWord文章を作るのが面倒
こんな事ができます
Wordには「差し込み印刷」機能がありますが、Excelにはありません。
しかし、簡単な「VBA」と「マクロ」と「VLOOKUP関数」を使用することで、ExcelからExcelへの「差し込み印刷」を実現できます。
どこよりもやさしい解説
Step_1
※各データを「VLOOKUP関数」で表示できるようにExcelを変更します

1⃣同じExcelファイル内に「印刷用のシート」と「差し込みデータ用のシート」を作成します
2⃣「差し込みデータ用のシート」の「A列」に、列「No」を追加します
3⃣「印刷用のシート」に「No」を入力できるセルを作成します
4⃣「印刷用のシート」の「No」を「検索値」にして「VLOOKUP関数」で各データを表示させます
※下図の上側が「印刷用のシート」、下側が「差し込みデータ用のシート」です

Step_2
①メニューの「ファイル」をクリックします


Step_3
②画面左下の「オプション」をクリックします


Step_4
③画面左側の「リボンのユーザー設定」をクリックします

④画面右側のチェックボックス「開発」にチェックを入れます
⑤画面右下のボタン「OK」をクリックします
※この操作により、メニュー「開発」が表示されるようになります

Step_5
⑥メニュー「開発」の中にある「Visual Basic」をクリックします

※別のウインドウが開きます

Step_6
⑦メニューの「挿入」をクリックします

⑧プルダウンメニューの「標準モジュール」をクリックします
※この操作により、画面左側のツリーに「標準モジュール」が追加されます

Step_7
⑨画面左側の「標準モジュール」の中にある「Module1」をダブルクリックします

⑩画面右側の空白部分に、下記コードをすべてコピー&ペーストします
※印刷の際は、コード内の「★」で囲まれた部分を修正してご利用ください

Sub 差し込み印刷()
'宣言
Dim rc As VbMsgBoxResult
Dim strName1 As String
Dim strName2 As String
Dim strKey As String
Dim lngStart As Long
Dim lngEnd As Long
Dim i As Long
'★★★★★★ 差し込み印刷設定(ここから)★★★★★★★★★★★★★★★★★★★★★
'「印刷するシート名」をダブルクォーテーションの中に入力
strName1 = "Sheet1"
'「差し込みデータのシート名」をダブルクォーテーションの中に入力
strName2 = "Sheet2"
'VLOOKUP関数の「検索値が入力されているセル」をダブルクォーテーションの中に入力
strKey = "D2"
'差し込み印刷するデータの「開始行」を入力
lngStart = 2
'差し込み印刷するデータの「終了行」を入力
lngEnd = 6
'★★★★★★ 差し込み印刷設定(ここまで)★★★★★★★★★★★★★★★★★★★★★
'確認メッセージを表示
rc = MsgBox("処理を続行しますか?", vbYesNo + vbQuestion)
'差し込み印刷を実行
If rc = vbYes Then
'開始行から終了行まで繰り返し印刷
For i = lngStart To lngEnd
'Noの更新
ThisWorkbook.Worksheets(strName1).Range(strKey).Value = ThisWorkbook.Worksheets(strName2).Range("A" & i).Value
'印刷
ThisWorkbook.Worksheets(strName1).PrintOut Copies:=1, Collate:=True
Next i
MsgBox "差し込み印刷が完了しました", vbInformation
'差し込み印刷を中止
Else
MsgBox "差し込み印刷を中止しました", vbInformation
End If
End Sub
Step_8
⑪画面左上のボタン「保存」をクリックします

⑫画面右上の「✖」をクリックして閉じます

Step_9
⑬メニュー「開発」の中にある「挿入」をクリックします

⑭フォームコントロールの「ボタン」をクリックします

Step_10
⑮空いている場所で「ドラッグ」して四角を描き、「ドロップ」して確定します

※描いた四角が「ボタン」になります

Step_11
⑯「差し込み印刷」をクリックします

⑰画面右下のボタン「OK」をクリックします

Step_12
⑱作成したボタンをクリックします


Step_13
⑲メッセージが表示され「はい」をクリックすると、差し込み印刷が開始されます


利用する際のポイント
VLOOKUP関数の検索値である「No」を、VBAで変更しながら印刷することで、差し込み印刷と同じ処理を実現しています。
コード内の★で囲まれた部分を修正することで、印刷範囲やシート名を調整することができます。