見出し画像

case01 差し込み印刷したい!【エクセルマクロ講座|実践編】

差し込み印刷をエクセルでもやりたい!

Wordならさくっとできる便利な差し込み印刷。
エクセルで表を作ったんだからそのままExcel上自動化できたら…!
ノンプログラマーがマクロの初心者の方に向けて解説します。

作るのが面倒な方向けに簡単に差し込み印刷ができるマクロ付きExcelファイルも配布しています~!

難易度:★★☆☆☆(ほぼ基本的な処理でつくれる!)

基本編はこちら↓

例えばこんな時…

シート「表」の内容をシート「印刷用」に差し込み印刷したい。

シート「表」
シート「印刷用」

よければ練習にサンプルファイルをお使いください↓

マクロを作ってみよう!

まずはどういう処理が必要か分解して考えてみる。

  1. 表を上から下までチェック

  2. シート「表」の値をシート「印刷用」に代入する

  3. 自動で印刷する

大きく分けるとこの3つ!

①表を上から下までチェック

これには繰り返し処理が使えそうだ!

表を上から下まで見ていきたいので「A列が空欄でない間」ループするという処理を使ってみる。

Sub 差し込み印刷1()

'2行目から最終行までループ

Dim n
n = 2

    Do Until Sheets("表").Cells(n, 1).Value = ""

        MsgBox Sheets("表").Cells(n, 1).Value
    
        n = n + 1
        
    Loop

End Sub

【解説】
Dim n
n = 2
 2行目から(表の項目名は不要)なのでn=2を代入する
Do Until Sheets("表").Cells(n, 1).Value = ""
 表を跨ぐ処理なので「Sheets("表")」を指定するのを忘れずに!
MsgBox Sheets("表").Cells(n, 1).Value
 ちゃんとループ処理されているか確認する用にメッセージボックスでチェック(後で消すよ!)
n = n + 1
 次の行へ

②シート「表」の値をシート「印刷用」に代入する

繰り返し処理の中に「表」から「印刷用」へ値を入れていく処理を書く

Sub 差し込み印刷2()

'表を代入していく

Dim n
n = 2

    Do Until Sheets("表").Cells(n, 1).Value = ""

        '日付
        Sheets("印刷用").Range("F4").Value = Sheets("表").Cells(n, 1).Value
        
        '売上
        Sheets("印刷用").Range("D6").Value = Sheets("表").Cells(n, 2).Value
        
        '担当者
        Sheets("印刷用").Range("F9").Value = Sheets("表").Cells(n, 3).Value
        
        MsgBox "次へ"
        
        n = n + 1
        
    Loop

End Sub

参考↓

【解説】
Sheets("印刷用").Range("F4").Value = Sheets("表").Cells(n, 1).Value
 Sheets("印刷用").Range("F4").Value … 印刷用のF4へ
 Sheets("表").Cells(n, 1).Value … 表のn行目のA列を代入
※シートの指定を忘れず!
※変数を使う時はCells()を使おう!
MsgBox "次へ"
 自動でループしていってしまうので、一つずつちゃんと入力できているかの確認用にメッセージボックスでチェック!(後で消すよ!)

ここまでできたら後は印刷するだけ!

③印刷プレビューしてみる

まずは確認用に印刷プレビューで処理を止めてみる。
MsgBox "次へ" の部分を変えてみよう。

Sub 差し込み印刷3()

'印刷プレビューを出す

Dim n
n = 2

    Do Until Sheets("表").Cells(n, 1).Value = ""

        '日付
        Sheets("印刷用").Range("F4").Value = Sheets("表").Cells(n, 1).Value
        
        '売上
        Sheets("印刷用").Range("D6").Value = Sheets("表").Cells(n, 2).Value
        
        '担当者
        Sheets("印刷用").Range("F9").Value = Sheets("表").Cells(n, 3).Value
        
        '印刷プレビュー
        Sheets("印刷用").PrintPreview
        
        n = n + 1
        
    Loop

End Sub

【解説】
Sheets("印刷用").PrintPreview
 「PrintPreview」=印刷プレビューを出す
 印刷プレビューを出したいシートを指定(Sheets("印刷用").)して使おう!
\ 覚えなくても「VBA 印刷プレビュー」とか検索すればOK /

④自動で印刷

先ほど追加した「Sheets("印刷用").PrintPreview」の部分を変えよう

Sub 差し込み印刷4()

'自動で印刷する

Dim n
n = 2

    Do Until Sheets("表").Cells(n, 1).Value = ""

        '日付
        Sheets("印刷用").Range("F4").Value = Sheets("表").Cells(n, 1).Value
        
        '売上
        Sheets("印刷用").Range("D6").Value = Sheets("表").Cells(n, 2).Value
        
        '担当者
        Sheets("印刷用").Range("F9").Value = Sheets("表").Cells(n, 3).Value
        
        '印刷
        Sheets("印刷用").PrintOut
        
        n = n + 1
        
    Loop

End Sub

【解説】
Sheets("印刷用").PrintOut

 「PrintOut」で印刷できる!
\ 覚えなくても「VBA 印刷」とか検索すればOK /

おまけ

「自分で作るの面倒くさいけど差し込み印刷したい~~!」という方に向けて簡単に差し込み印刷ができるマクロ付きExcelファイルを用意しました!

※個人利用の範囲でお使いください。二次配布等はお辞めください。

マクロ付きファイルなので設定を忘れず↓

準備

①用意してあるデータ(表)を同じブック内に作るかコピーして持ってきます。
②同じように印刷したいフォーマットを別のシートに作ります。

これで「設定」「データ(表)」「印刷用フォーマット」の3つのシートがある状態です。
※シート「設定」は触らないでね!
※データ(表)は1行目に項目名がある想定でマクロを作ってます。
※シート名はなんでもOK!

使い方

①設定用ウィンドウを出す
シート「設定」の「設定する」ボタンを押すとウィンドウが出ます。
②シート名を選択
データシート・印刷用シートに先ほど作ったシート名を選んで入力します。入力出来たら「入力する」ボタンを押す。
③差し込み設定
項目名を選択肢から選び「入力先のセル」に差し込みたいセルの場所を入力。できたら「入力する」ボタンを押す。同じ手順で他の項目も設定していく。
【point】「★」ボタンを押すと選択中のセルが自動で入力されるので、ウィンドウを開きながら印刷用シートで場所を確認したい時などに便利!
④印刷する
シート「設定」に入力した設定が出力されているので(背景がグレーのところ)確認して問題なければ「印刷する」ボタンをクリック!
(いきなり印刷されるのが怖いときは「プレビューを確認する」にチェックを入れよう)

今回の講座用のデータがそのまま入っているので、それをお試しで使ってみてね!

お疲れ様でした!

これを解説して欲しい!これが分からない!などリクエストあれば、こちらからお気軽にどうぞ↓


この記事が気に入ったらサポートをしてみませんか?