こんにちは、じゅんぱ店長(@junpa33)です。
今回は、「金種表作成エクセルソフト」の作成で、金種表の印刷モードのVBAコードを組み立てていきます。
シートで言うと、「印刷用」シートの部分の説明となります。
その前に、先回の記事をもう一度チェックするにはこちら↓になります。
金種表作成エクセルVBAの作り方②自動計算の金種数量表が作れる
金種表作成関係の記事はこちらです。
コンテンツ
印刷のスタイルを考えます
レジの締め切りなど各金種の枚数から合計を計算、確定させるときの紙資料としての印刷
現金支払いの人件費など個別にしかも釣銭なく準備したい場合、相手先ごとに準備する金種が分かるような紙資料としての印刷
の、大きく2つのケースがあると思います。
「印刷用」シートに印刷用の金種表を出力し、A6サイズの用紙で印刷します。
印刷用のVBAコード
これからのコードは、「Module2」に記述します。
金種合計表示での印刷
金種金額計算印刷のコード
プロシージャー名を「金額計算印刷」とします。
最初に、「印刷用」シートを初期状態に戻します。
今回は「設定」シートから「印刷用」シートへはコピーペーストではなく、セルデータの移動(転記)で行っています。
金種表の作成日時も同時に表示されるようになっています。
このコードでは、印刷プレビューまで表示するようにしています。
実際の印刷はプレビューの「印刷ボタン」で行います。
For ~ Nextについてはこちらが参考になります。
エクセルVBA!For~Nextのループと入れ子構造をVBA最速理解
With ~ End Withについてはこちらが参考になります。
With~End Withの使い方。VBAコードを簡潔に記述する
Format関数の使い方についてはこの記事を参考にしてください。
Format関数を書式設定のテッパン関数にする!実務での書式と重要5例
セルのフォントについてはこの記事を参考にしてください。
セルの罫線設定についてはこちらを参考にしてください。
Sub 金額計算印刷()
シートset
ASheet.Select
シートクリア
Dim Bcol As Long, x As Long
For p = 2 To 13
For q = 1 To 3
ASheet.Cells(p + 1, q) = SSheet.Cells(p, q + 4)
Next q
Next p
With ASheet
.Range(“A:A”).Columns.ColumnWidth = 18
.Range(“B:B”).Columns.ColumnWidth = 15
.Range(“C:C”).Columns.ColumnWidth = 21
.Range(“C4”, “C14”).NumberFormatLocal = “#,##0円”
.Cells.Font.Size = 13
.Cells.Font.Bold = True
End With
With Range(“A1”)
.Value = “金種表”
.RowHeight = 33
.Font.Size = 25
.Font.Name = “MS P明朝”
End With
With Range(“C2”)
.Value = Format(KSheet.Cells(1, 2), “yyyy/mm/dd hh:nn:ss AM/PM”)
.Font.Size = 10
End With
With Range(“A2”)
.Value = SSheet.Range(“F1”)
.RowHeight = 24
.Font.Size = 18
.Font.Name = “MS P明朝”
End With
With Range(“A3”, “C14”)
.RowHeight = 15
.Borders.LineStyle = xlContinuous
End With
With Range(“A3”, “C3”)
.RowHeight = 24
.Font.Size = 18
.HorizontalAlignment = xlCenter
.Font.Name = “MS P明朝”
End With
With Range(“A14”, “C14”)
.RowHeight = 24
.Font.Size = 18
.HorizontalAlignment = xlCenter
.Font.Name = “MS P明朝”
End With
ASheet.PrintOut from:=1, To:=1, Preview:=True
End Sub
実行ボタンの設置
「設定」シートの作り方で解説しました「金種金額計算印刷」ボタンにプロシージャーを紐づけします。
紐づけの方法については、先回の説明と同じになります。
こちらでも 「動作ボタンを設置します。」で確認いただけます。
実際の印刷サンプル
「ここに項目を入力」の部分は、「設定」シートの入力欄にレジ番号などを入力してください。
金種数量表示での印刷
相手先選択印刷のコード
プロシージャー名を「相手先印刷」とします。
先ほどと同様に最初に、「印刷用」シートを初期状態に戻します。
どの「相手先・項目」をピックアップして印刷するかを指定するために、セルをカーソルで指定(アクティブ)にします。
どのセルがアクティブになっているかを調べて、それの行番号を変数化します。
作成日時も印刷されます。
印刷プレビュー画面が表示されます。内容をチェックしてプレビューの印刷ボタンで印刷になります。
Sub 相手先印刷()
シートset
ASheet.Select
シートクリア
Dim Bcol As Long, x As Long
KSheet.Select
Bcol = Cells(1, Columns.Count).End(xlToLeft).Column
Actrow = ActiveCell.Row
For x = 4 To Bcol + 1
ASheet.Range(“A” & x) = KSheet.Cells(1, x – 1)
ASheet.Range(“B” & x) = KSheet.Cells(Actrow, x – 1)
ASheet.Range(“C” & x) = ASheet.Range(“A” & x) * ASheet.Range(“B” & x)
Next x
ASheet.Select
Range(“A” & x) = “合計”
Range(“B” & x) = WorksheetFunction.Sum(Range(Cells(4, 2), Cells(x, 2)))
Range(“C” & x) = WorksheetFunction.Sum(Range(Cells(4, 3), Cells(x, 3)))
With ASheet
.Range(“A:A”).Columns.ColumnWidth = 18
.Range(“B:B”).Columns.ColumnWidth = 15
.Range(“C:C”).Columns.ColumnWidth = 21
.Range(“C4”, “C” & x).NumberFormatLocal = “#,##0円”
.Cells.Font.Size = 13
.Cells.Font.Bold = True
End With
With Range(“A1”)
.Value = “金種表”
.RowHeight = 33
.Font.Size = 25
.Font.Name = “MS P明朝”
End With
With Range(“B1”)
.Value = “金種数量計算”
.Font.Size = 15
.Font.Name = “MS P明朝”
End With
With Range(“A2”)
.Value = KSheet.Cells(Actrow, 1)
.RowHeight = 24
.Font.Size = 21
.Font.Name = “MS P明朝”
End With
With Range(“C2”)
.Value = Format(KSheet.Cells(1, 2), “yyyy/mm/dd hh:nn:ss AM/PM”)
.RowHeight = 24
.Font.Size = 10
End With
With Range(“A3”, “C” & x)
.RowHeight = 15
.Borders.LineStyle = xlContinuous
End With
With Range(“A3”, “C3”)
.RowHeight = 24
.Font.Size = 18
.HorizontalAlignment = xlCenter
.Font.Name = “MS P明朝”
End With
Range(“A3”) = “金種”
Range(“B3”) = “数量”
Range(“C3”) = “金額”
With Range(“A” & x, “C” & x)
.RowHeight = 24
.Font.Size = 18
.HorizontalAlignment = xlCenter
.Font.Name = “MS P明朝”
End With
With ASheet.PageSetup
.TopMargin = 28.6
.BottomMargin = 28.6
.LeftMargin = 57.2
.RightMargin = 28.6
.Orientation = xlLandscape
End With
ASheet.PrintOut from:=1, To:=1, Preview:=True
End Sub
実行ボタンの設置
「金種数量」シートに「相手先選択印刷」ボタンを設置し、プロシージャーを紐づけします。
ボタンは、「A1」セルの位置に設置します。
紐づけの方法については、先回の説明と同じになります。
こちらでも 「動作ボタンを設置します。」で確認いただけます。
実際の印刷サンプル
2000円札を使う場合と使わない場合の印刷例です。
![]() |
![]() |
金種表印刷のまとめ
画面でチェックして準備するだけではなく、紙化して提示しなければいけない場合もあるかとは思います。
既製の金種表伝票も販売されていますが、これを利用いただくと、
大きく書式は変わるかと思いますが、電卓をはじくこともなく必要な伝票も作成していただけると思います。
便利にお使いいただき、業務時間と業務ミスの削減につなげていただければ嬉しく思います。
このソフトの全体の取り扱い方法については、このテーマの第1記事にありますが、
こちら↓をご覧いただければと思います。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたいテーマを纏めてみました。
今回の記事はここまでです。 最後までご覧いただき有難うございました。