![見出し画像](https://assets.st-note.com/production/uploads/images/70097601/rectangle_large_type_2_50fee0351d068e723d3ad9feb09b46c8.png?width=1200)
case01 差し込み印刷したい!【エクセルマクロ講座|実践編】
差し込み印刷をエクセルでもやりたい!
Wordならさくっとできる便利な差し込み印刷。
エクセルで表を作ったんだからそのままExcel上自動化できたら…!
ノンプログラマーがマクロの初心者の方に向けて解説します。
作るのが面倒な方向けに簡単に差し込み印刷ができるマクロ付きExcelファイルも配布しています~!
難易度:★★☆☆☆(ほぼ基本的な処理でつくれる!)
基本編はこちら↓
例えばこんな時…
シート「表」の内容をシート「印刷用」に差し込み印刷したい。
![](https://assets.st-note.com/img/1642137844485-0AnhsMz3u9.png)
![](https://assets.st-note.com/img/1642137849333-CboQNVSpDs.png?width=1200)
よければ練習にサンプルファイルをお使いください↓
マクロを作ってみよう!
まずはどういう処理が必要か分解して考えてみる。
表を上から下までチェック
シート「表」の値をシート「印刷用」に代入する
自動で印刷する
大きく分けるとこの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】「★」ボタンを押すと選択中のセルが自動で入力されるので、ウィンドウを開きながら印刷用シートで場所を確認したい時などに便利!
④印刷する
シート「設定」に入力した設定が出力されているので(背景がグレーのところ)確認して問題なければ「印刷する」ボタンをクリック!
(いきなり印刷されるのが怖いときは「プレビューを確認する」にチェックを入れよう)
今回の講座用のデータがそのまま入っているので、それをお試しで使ってみてね!
お疲れ様でした!
これを解説して欲しい!これが分からない!などリクエストあれば、こちらからお気軽にどうぞ↓
この記事が気に入ったらサポートをしてみませんか?