【Excel VBA】 ExcelからExcelに差し込み印刷する方法

エクセルからエクセルに差し込み印刷する方法

こんな方に役立つ情報です
  • エクセルに差し込み印刷の機能がなくて困っている
  • エクセルで宛名印刷をしたい
  • 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で変更しながら印刷することで、差し込み印刷と同じ処理を実現しています。
コード内の★で囲まれた部分を修正することで、印刷範囲やシート名を調整することができます。