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