作成した金種表を印刷するVBA。相手先と合計別

kinsyusaku3eyecatch

作成した金種表の印刷を行ないます。
金種合計と相手先それぞれに印刷できるようにします。
紙化が必要な場面では必要なVBAコードです。

こんにちは、じゅんぱ店長(@junpa33)です。

「金種表作成ソフト」で、金種表を印刷するためのVBAコードを組み立てます。

シートで言うと、「印刷用」シートの部分の説明となります。

その前に、先回の記事をもう一度チェックするにはこちら↓になります。

kinsyusaku2eyecatch 合計金額から各金種数量を自動算出。金種数量表で表示

印刷内容を金種合計と相手先と別々に設定

kinsyuinsatup038
  1. レジの締め切りなど各金種の枚数から合計を計算、確定させるときの紙資料としての印刷
  2. 現金支払いの人件費など個別にしかも釣銭なく準備したい場合、相手先ごとに準備する金種が分かるような紙資料としての印刷

の、大きく2つのケースがあると思います。

「印刷用」シートでは印刷用の金種表を出力し、A6サイズの用紙で印刷します。

印刷用のVBAコード

kinsyuinsatup039

これからのコードは、「Module2」に記述します。

金種合計表示での印刷

金種金額計算の印刷のコード

プロシージャー名を「金額計算印刷」とします。

最初に、「印刷用」シートを初期状態に戻します。

今回は「設定」シートから「印刷用」シートへはコピーペーストではなく、セルデータの移動(転記)で行っています。

金種表の作成日時も同時に表示されるようになっています。

このコードでは、印刷プレビューまで表示するようにしています。

実際の印刷はプレビューの「印刷ボタン」で行います。

fornextirekoeyecatch For~Nextのループと入れ子構造をVBA最速理解 vbawithstateeyecatch With~End Withの使い方。VBAコードを簡潔に記述する VBAFormateyecatch Format関数は書式設定のテッパン関数!実務の書式と重要5例 vbacellsfonteyecatch 「フォント」の操作を最速理解する エクセルVBA vbacellsbordereyecatch 「罫線」の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

実行ボタンの設置

「設定」シートの作り方で解説しました「金種金額計算印刷」ボタンにプロシージャーを紐づけします。

紐づけの方法については、先回の説明と同じです。

こちらでも 「動作ボタンを設置します。」で確認いただけます。

userformcommdeyecatch コマンドボタンをユーザーフォームに設置する

実際の印刷サンプル

「ここに項目を入力」の部分は、「設定」シートの入力欄にレジ番号などを入力してください。

kinsyu016a

相手先の金種数量表示での印刷

相手先選択印刷のコード

プロシージャー名を「相手先印刷」とします。

先ほどと同様に最初に、「印刷用」シートを初期状態に戻します。

「設定」シートのどの「相手先・項目」をピックアップして印刷するかを指定するために、印刷する相手先セルをカーソルで指定(アクティブ)にします。

どのセルがアクティブになっているかを調べて、それの行番号を変数化します。

作成日時も印刷されます。

印刷プレビュー画面が表示されます。内容をチェックしてプレビューの印刷ボタンで印刷になります。

vbasumeyecatch SUM関数で合計計算!実務で使えるVBAコード作成
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」セルの位置に設置します。

紐づけの方法については、先回の説明と同じです。

こちらでも 「動作ボタンを設置します。」で確認いただけます。

userformcommdeyecatch コマンドボタンをユーザーフォームに設置する

実際の印刷サンプル

2000円札を使う場合と使わない場合の印刷例です。

2,000札を使わない場合

kinsyu023a

2,000札を使う場合

kinsyu022a

金種表印刷のまとめ

kinsyuinsatup040

画面でチェックして準備するだけではなく、紙化して提示しなければいけない場合もあるかとは思います。

既製の金種表伝票も販売されていますが、これを利用いただくと、

大きく書式は変わるかと思いますが、電卓をはじくこともなく必要な伝票も作成していただけると思います。

便利にお使いいただき、業務時間と業務ミスの削減につなげていただければ嬉しく思います。

エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。

vbastudyeyecatch2 エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です

今回の記事はここまでです。   最後までご覧いただき有難うございました。

エクセルVBA最速理解で必要な知識を集めよう!

エクセルVBA業務ツールで日常の業務改善を行いましょう。

VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。

アンケートでポイ活しよう!!

アンケートに答えれば答えるほど ”使える” ポイントがたまります。

NTTコム サーチ

af_banner01

Dstyle web

dstyleweb_logo
dstyle_320x50-min