最終的に完成させるマクロを1回目と同じように言葉で表してみます。
関連する試作ページにリンクさせときますね。
- 受注マスタの受注票を印刷したいデータの「印刷」の列に“1”を入力する
- マクロを実行させます
- 受注票の印刷設定が完了しているか確認するメッセージボックスを表示する
- Excelのシートの最終行からデータ範囲の最後の行までジャンプしてその行番号を取得する
- 受注マスタのデータ範囲の一番最初の行に行きます
- 列「印刷」に“1”が入力されている場合は受注コードをシート受注票の受注コードに入力します。
- 受注票に受注コードが入力されるとVLOOKUP関数によって受注票が作成されます。
- 作った受注票を印刷します
- 次の行を見に行きます
- 6〜9をデータ範囲の最終行まで繰り返したら終了します。
受注マスタから受注票を印刷するマクロ
Sub 印刷準備確認()
'変数a
Dim a
'変数aにはい、いいえの質問メッセージボックスの押された結果を格納
a = MsgBox("プリンタの設定は完了していますか?", vbYesNo + vbQuestion + vbDefaultButton2, "確認")
'押されたボタンaの確認
Select Case a
'はいの場合
Case vbYes
'マクロ受注票印刷を実行する
Call 受注票印刷
'いいえの場合終了
Case vbNo
End Select
End Sub
―――――――――――――――――――――――――――――――――――――
Sub 受注票印刷()
'変数i、n、s
Dim i
Dim n
Dim s
'シート受注マスタを選択
Worksheets("受注マスタ").Select
'nにデータ範囲の最後の行番号を格納
n = Cells(Rows.Count, 1).End(xlUp).Row
'iが2からnまで繰り返し処理(データ範囲が2行目から)
For i = 2 To n
'列「印刷」が"1"の時
If Cells(i, 2) = 1 Then
'sに受注コードを格納
s = Cells(i, 1).Value
'シート"受注票"のセルB4にsを入力
Worksheets("受注票").Cells(4, 2) = s
'受注票を印刷
Worksheets("受注票").PrintOut
End If
Next i
End Sub
とこんな感じになります。
印刷準備確認のメッセージボックスを表示させるマクロと受注票を印刷するマクロを分けていますが、同じモジュール(Module)に記入しています。
1つのモジュールに複数のマクロを記入すると自動的に線が引かれて区別されます
一連の処理を複数のマクロに分ける場合は1つのモジュールに記入した方が分かりやすいと思います。
受注マスタの列「印刷」に“1”を入力します。
と、この様な受注票が印刷されます。
サンプルExcelファイル)North Wind.zipで実際に実行させてみてください。
サンプルファイルの使い方ですが、
まず、受注票を実際に印刷させて(PDFで可)印刷設定を済ませておいてください。
マクロの実行のボタンとかは用意していません。マクロを表示させて「F5」キーを押すとか、ショートカットを設定するとか、原始的な方法で実行させてください。
前のページ:マクロを実行するマクロ
次のページ:
関連ページ
・Excel VBA メニュー
・VBAを使えるようにしてみました!
・実例1 一覧表から帳票を自動で印刷させる
昔「デンスケ」と言われたカセットテープレコーダがあったのをご存じでしょうか?
所謂、録り鉄とか、ヒコーキの音とか野外の生録をするテープレコーダーです。
マイクもそれなりのをステレオなので2本用意しなければなりません。でもそんなんで録音した蒸気機関車の近づく迫力のサウンドは鳥肌もんでした。。。
そえが今ではマイクも一体化してこんなカッコになっちゃいました。
そう言えば、パーソナルユースで音だけってあまり記録されないよね、動画としては音も一緒に当然撮られてるけど、音だけって無いよね。
なんでだ?音楽は音だけで聞くし最近はASMRとして音を聞いたりってのもあるけど、写真や動画の様に身の回りの音だけを録音するってのはあまり無いねー。。。スマホにもICレコーダーついてるんだから、もっと音遊びできるアプリができてもいいんじゃねぇ?とか思う。
ラベル:一覧表から帳票を印刷