エクセルVBA SUM関数を利用。金種数から合計金額を計算

kinsyusaku1eyecatch

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

 

今回からは、「金種表作成エクセル完全版」の作成のためのVBAコードの組み立てを行っていきます。

このソフトの中で使うエクセルシートは「設定」・「金種数量」・「印刷用」という名称にしていますが、

この記事では、最初に、「設定」シートの部分を説明します。

今回のキーポイントは「SUM」関数を使ってのVBAコード組み立てです。

 

この「設定」シートでは、

  1. 「金種数から合計金額を表示する」VBAの組み立てと
  2. 「合計金額から金種枚数を計算する」ための「相手先とその金額」データ入力欄
  3. 「各計算を実行するコントロールボタン」の設置

の設置作業を行います。

 

本題に入る前に、エクセルBOOKの準備をしておきます。

新しくエクセルを起動してください。

そのエクセルBOOKを「金種表作成.xlsm」として一度保存をしてください。

これで、下準備OKです。

 

本題に入るその前に、あらためて先回の記事をチェックするにはこちら↓になります。

無料DL金種表作成エクセルソフト完全版!金額と枚数計算。かんたん取説

kinsyuhyoueyecatch 無料DL金種表作成エクセル完全版!現金出納担当者に必携

 

金種表作成一覧
kinsyuhyoueyecatch
こんにちは、じゅんぱ店長(@junpa33)です。 これから4回に分けて「金種表作成エクセルソフト完全版」の作成方法についてをテーマに説明していきます。 この記事では最初にまず、「完成形のソフト」を説明いたします。 金種表作成一覧 関連記事 ...
続きを読む
kinsyusaku1eyecatch
こんにちは、じゅんぱ店長(@junpa33)です。 今回からは、「金種表作成エクセル完全版」の作成のためのVBAコードの組み立てを行っていきます。 このソフトの中で使うエクセルシートは「設定」・「金種数量」・「印刷用」という名称にしています ...
続きを読む
kinsyusaku2eyecatch
こんにちは、じゅんぱ店長(@junpa33)です。 今回は、「金種表作成エクセルソフト」の作成で「金種・数量表示」のVBAコードの組み立てを行っていきます。 シートで言うと、「金種数量」シートの部分の説明となります。 自動計算で金種数量表が ...
続きを読む
kinsyusaku3eyecatch
こんにちは、じゅんぱ店長(@junpa33)です。 今回は、「金種表作成エクセルソフト」の作成で、金種表の印刷モードのVBAコードを組み立てていきます。 シートで言うと、「印刷用」シートの部分の説明となります。 その前に、先回の記事をもう一 ...
続きを読む

 

 

関連記事

 

先ず全体としての金種表エクセルの形です

 

  1. 金額から金種数を算出する
  2. 金種数から合計金額を計算する

ことについて、

元の数量や金額の入力欄を作成します。

 

入力値をリセットするボタンを設置

 

1、2を計算実行するボタンを設置

 

金種の設定で、2000円札を使うかどうかを選択できるようにする

 

計算結果のエクセルシート表示だけでなく、個別に結果をプリントアウトできるようにする

 

計算実行の日時日付を残せるように、結果のプリントアウトの時に印刷表示されるようにする

のようなことが出来るように組み立てて行きます。

 

今回作成する金種表エクセルの「設定」シートは

 

kinsyu011ab

 

SUM関数を使ったエクセルVBA組み立て

 

エクセルVBAの操作で最初に行う事については、

こちらの「エクセルVBA 始めての起動。VBEの立ち上げ、保存と終了」が、参考になります。

「設定」シートの準備作業

 

「Sheet1」のシート名を「設定」に変更します。

kinsyu001a

「開発」タブ→「Visual Basic」より「標準Module」を挿入します。

kinsyu002a

準備は完了です。

 

「金種数から合計金額を表示する」入力欄を作ります

 

入力値をリセットして各セルサイズ、文字サイズを調整し項目を表示します。

 

VBAコードを組み立てるについて、まず、

流れとしては、まず最初に表示される(作業する)シート上のデータをクリアしセルサイズをデフォルトの状態に戻すところから始めます。

 

入力値をリセットするコード

各セルのフォーマットと値、セルサイズをデフォルトに戻します。

プロシージャー名を「設定CL」とします。Module1に記述します。

Sub 設定CL()

 

Worksheets(“設定”).Select
  With Cells
    .ClearFormats
    .ClearContents
    .UseStandardHeight = True
    .UseStandardWidth = True
  End With

End Sub

 

項目を表示しセルサイズフォントサイズとカラーをセットするコード

プロシージャー名を「設定作表」とします。

最初に先ほどの「設定CL」プロシージャーを呼び出します。

金種の数量入力欄を設置していきます。

フォントサイズやカラーは適宜お好みで設定してください。

Sub 設定作表()

 

設定CL

 

Worksheets(“設定”).Select
  With ActiveSheet
    .Rows.RowHeight = 21
    .Columns.ColumnWidth = 18
  End With
  Rows(1).RowHeight = 33
  Range(“A2”) = “相手先・項目”
  Range(“B2”) = “金額”
  Range(“E2”) = “金種”
  With Range(“F1”)
    .Value = “ここに項目を入力”
    .Font.Size = 12
    .Font.ColorIndex = 15
  End With
  Range(“F2”) = “数量”
  Range(“G2”) = “金額”
  Range(“E3”) = “10000”
  Range(“E4”) = “5000”
  Range(“E5”) = “2000”
  Range(“E6”) = “1000”
  Range(“E7”) = “500”
  Range(“E8”) = “100”
  Range(“E9”) = “50”
  Range(“E10”) = “10”
  Range(“E11”) = “5”
  Range(“E12”) = “1”
  Range(“E13”) = “合計”

  With Range(“A2”, “G2”)
    .Font.Size = 15
    .Font.ColorIndex = 5
    .Font.Bold = True
  End With

  With Range(“E3”, “E13”)
    .Font.Size = 15
    .Font.ColorIndex = 5
    .Font.Bold = True
  End With

 

End Sub

 

金種数量からSUM関数で合計の計算

 

各金種ごとに入力した数量から総合計までを計算するコードです。

合計計算は、今回「SUM関数」を使って計算します。

「WorksheetFunction.Sum」というように記述します。カッコ内は計算範囲になります。

Sub 金種合計()

 

For i = 3 To 12
  Cells(i, 7) = Cells(i, 5) * Cells(i, 6)
Next i
  Cells(13, 6) = WorksheetFunction.Sum(Range(Cells(3, 6), Cells(12, 6)))
  Cells(13, 7) = WorksheetFunction.Sum(Range(Cells(3, 7), Cells(12, 7)))

With Range(“F3”, “G13”)
  .Font.Size = 15
  .Font.Bold = True
End With
Range(“G3:G13”).NumberFormatLocal = “\#,##0;\-#,##0”

End Sub

 

Module1に記述したコードの確認

 

Module1に記述したコードはこのようになります。

kinsyu009_1a

 

動作ボタンを設置します

 

「金種・数量表示」、「2000円札利用チェックボックス」、「リセットスタート」、「金種・合計表示」、「金種金額計算印刷」の動作ボタンを設置していきます。

動作ボタンは今までに何回か設置していますが、今回も同様になります。

 

「開発」タブ→「挿入」より「フォームコントロール」の「ボタン」をクリックし設置します。

kinsyu005a

 

「ボタン」のテキストを「金種・数量表示」としてフォントの変更は「コントロールの書式設定」から行います。

kinsyu006a

 

同様に順番に、各ボタンを設置してください。

kinsyu007a

 

動作ボタンとプロシージャーの紐づけは、「マクロの登録」から行うことが出来ます。

kinsyu008a

 

マクロ名欄からプロシージャーを選択します。

kinsyu010a

 

ここまでの作成したプロシージャーの紐づけは、

「始めにここをクリックします」には「設定作表」プロシージャーを

「金種・合計表示」には「金種合計」プロシージャーを選択します。

 

2000円チェックボックスを設置します

 

ボタンの設置と同じ方法で、チェックボックスを設置します。B1セルに設置してください。

チェックしたときの動作でイベントを起こすようにします。

VBAコードの記述は、Sheet1(設定)のシートイベントとして行います。

チェックボックスに変化があったとき、それが「チェックされた」のであれば、

B1セルに「〇」を記述します。

というコードとします。

kinsyu024a

 

SUM関数を使ったVBAコード作成のまとめ

 

Module1に記述した中の設定シートでの作成はこれまでになります。

合計計算も「SUM」関数を使えば楽チンにコード化実行できます。

ループ計算で合計を出していくことも出来ますが、

SUM関数を利用した方が遥かに明確で簡単です。

エクセル関数でもVBAでも、SUM関数はベーシックなスタンダードな関数になっています。

 

次回からは、

Module2で「金種・数量表示」ボタンに対応したVBAコードと

プリントアウトできるようにするVBAコードを組み立てて行きます。

 

今回の記事はここまでとなります。

 

次の記事に進むのはこちら↓になります。

金種表作成エクセルVBAの作り方②自動計算の金種数量表が作れる

kinsyusaku2eyecatch 金種表作成エクセルVBAの作り方②自動計算の金種数量表が作れる

 

 

最後までお読みいただきありがとうございました。

 

エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたいテーマを纏めてみました。

 

vbaintfixeyecatch
エクセルVBA関数で、数値の整数部分だけを分離します。 整数値取得のFix関数でなくInt関数の使用の場合でも、 他の関数との組み合わせで解決することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回のテーマは、数値の整 ...
続きを読む
vbarndeyecatch
エクセルVBAのRnd関数で乱数を取得します。 実用のためにはコードに簡単な加工をする必要があります。特に乱数値の整数化とRandomizeは必須です。 6.5兆通りのパスコードの生成方法も解説しています。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbaroundupdowneyecatch
エクセルVBA 数値の切り上げ、切り捨てをするときには注意しなければいけません。 RoundUp関数とRoundDown関数を使う時に負の数が混在していると、そのままだと誤った計算結果になることがあります。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbaroundeyecatch
エクセルVBAでも数値を四捨五入したい時は、Round関数を利用することが多いです。 Round関数の使い方はワークシートと同様ですが、ただ大きな注意点があります。 ここではその注意点も含めて使い方の説明を行います。 こんにちは、じゅんぱ店 ...
続きを読む
vbamaxminaveeyecatch
エクセルVBAで、ワークシート関数 Max・Min・Averageを利用して最大値・最小値・平均を求めます。 「簡単で短いエクセルVBAコード組み立て」を目指す上では、ワークシート関数は強い味方です。 こんにちは、じゅんぱ店長(@junpa ...
続きを読む
vbainsteeyecatch
InStr関数・InStrRev関数は、文字列操作系の関数の中でも最重要です。 この関数により指定の文字(列)の存在位置が取得できます。 そしてそれを目盛基準として、文字列操作をすることもできます。 こんにちは、じゅんぱ店長(@junpa3 ...
続きを読む
vbareplaceeyecatch
エクセルVBAで使える関数にReplace関数があります。 Replace関数は検索の文字列を指定の文字列に置換したり、削除したり出来ます。 利用価値の高い関数です。使い慣れておきましょう。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbaselectcaseeyecatch
エクセルVBAで、必須の条件文。 その中の一つで、Select Case 条件分岐 ステートメントの使い方を説明します。 簡単なコード、可読性の向上が特徴のステートメントです。是非、知っておきましょう。 こんにちは、じゅんぱ店長(@junp ...
続きを読む
VBAValeyecatch
エクセルVBAのVal関数の使い方についてです。 「値を文字列型から数値型へ変換する」という機能があります。 データ型が不一致の場合、プログラムエラーでコード停止が発生することが良くあります。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
VBAStringeyecatch
エクセルVBA String関数の使い方についてです。 「文字を指定した数だけ並べることが出来る」という機能の関数です。 この関数を使えば簡潔なコード記述で実行することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回は ...
続きを読む
vbajoineyecatch
エクセルVBAでJoin関数の使い方について説明します。 文字列を接続する関数ですが、 配列変数で文字列を要素化した時にはこれを使います。 また「区切り文字」も自由に設定できます。 こんにちは、じゅんぱ店長(@junpa33)です。 今回は ...
続きを読む
vbamideyecstch
エクセルVBAで文字列操作は、コード作成の中でも重要な部分です。 Mid・Right・Left関数は、その操作の中で重要な働きをする関数です。 文字列を切り出すこの関数の基本部分を説明します。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
vbatrimeyecatch
Trim・RTrim・LTrimは文字列の端にあるスペースを取り除きます。 ちょっとのことですが、取り込みデータにスペースが付いていることでのエラーは発見修正が結構厄介です。 注意が必要です。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
vbastrcstreyecatch
エクセルVBAで、Str関数とCStr関数に使い方とその違いについて説明します。 戻り値にちょっとした違いがあります。 使い方の違いでその後のコードの進行に影響が出ることがあり、なおざりにはできません。 こんにちは、じゅんぱ店長(@junp ...
続きを読む
vbaleneyecatch
Len関数の使い方ついて説明します。 エクセルVBAでプログラミングを行う時に、テキストデータを加工処理するには必須の関数です。 非常に有用な関数ですので、是非使えるようになっておきましょう。 こんにちは、じゅんぱ店長(@junpa33)で ...
続きを読む
VBACheckBoxeyecatch
エクセルシートで使う場合の、2種類あるチェックボックスの設置と使い方の違いを解説します。 一見簡単そうですが、 単純でない使い方をしたい時は、設置方法と設定方法を工夫する必要があります。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
VBAOptionbuttoneyecatch
エクセルで書類を作成する時、項目を選択できるようにするのがオプションボタンです。 これには2種類あり、使い方にかかわる違いもあります。 詳しいオプションボタン設置方法と使い方のコツを解説します。 こんにちは、じゅんぱ店長(@junpa33) ...
続きを読む
vbamojisousaeyecatch
エクセルVBAコードで、ファイルの保存時に名前を付けて保存について、その時の年月日を付けたい時の設定方法についてです。 保存されたファイルがたくさん増えて行く中で、ファイルの判別で年月日を付けている(付けたいと思っている)人も多いでしょう。 ...
続きを読む
vbajyufukueyecatch
今回は、同じ項目を一つにまとめるためのエクセルVBAコードを紹介します。 多数銘柄の商品を複数の店で扱っている場合、商品銘柄集計表を作るには、商品銘柄の種類だけをリストにしないといけません。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbafolderdeleteeyecatch
今回は、不要なフォルダをサクッと削除するエクセルVBAコードを紹介します。 削除の仕方は2つあります。VBA自身の機能を使うことと、FSOの機能を使うことの2つです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、不 ...
続きを読む
vbadirkilleyecatch
今回は、フォルダに保存されている要らないファイルを削除するエクセルVBAコードを紹介します。 フォルダを開いて一つずつファイル名を確認して、ではなくて、コード実行一発でササッと完了します。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
vbachdireyecatch
エクセルVBAのステートメントで「ChDir(チェインジディレクトリ)」というのがあります。 少々地味感のあるステートメントですが、この使い方のポイントを説明いたします。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAの ...
続きを読む
vbafindeyecatch001
今回は、データの検索方法で、エクセルVBAでできるメソッドについてです。 「FindとFindNextメソッド」の使い方と最速理解のコードの組み立て方を説明したいと思います。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルの検 ...
続きを読む
今回も、エクセルVBAで利用できるワークシート関数についてがテーマです。 この記事では、データナンバーなどから、その必要な値や数値を抽出する「Vloolup関数」について使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です ...
続きを読む
vbaindexeyecatch001
今回も、エクセルVBAで利用できるワークシート関数についてがテーマです。 この記事では、データリストから必要な値や数値を取り出してくる「Index関数」について使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセ ...
続きを読む
vbamatcheyecatch001
エクセルVBAで利用できる関数についてがテーマです。 今回は、データリストから必要な値や数値を取り出してくる「Match関数」について、使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAでよく使うワーク ...
続きを読む
vbahairetu3eyecatch
エクセルVBAで変数を利用するとき、二次元配列変数を知っていれば何かと便利なことがあります。 今回はそんな配列変数をより実際に近い例題で説明していきます。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAのプログラムでは、 ...
続きを読む
vbahairetu2eyecatch
エクセルVBAで配列を利用する時、それに関わる関数やステートメントを利用すれば、 より簡潔にコードを作成することが出来ます。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBA 配列を扱うときに利用できる関数とステートメント ...
続きを読む
vbahairetueyecatch
エクセルVBAで変数を利用するとき、複数の同じ型で変数を設定したいときがあります。 そんな時、出番となるのが配列変数ということです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAの1次元配列変数の使い方を説明します。 ...
続きを読む
vbabuttoneyecatch
エクセルVBAのプログラムを実行するのに、ワークシート上に設置したボタンのクリックでワンポチっとで行いたい。 そんなボタンの簡単設置方法を紹介します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、シートにマクロ(プ ...
続きを読む
vbasumeyecatch
エクセルVBAで、羅列された数値の集計作業をパパッと熟していきたいときがありますよね。 それを簡単に行える方法としてSUM関数があります。今回はこのSUM関数の使い方についてです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセ ...
続きを読む
vbainputboxeyecatch
エクセルVBAのプログラムで、利用者からの入力データを取り込んでコードを実行していくことがあります。 その簡潔な方法としてInputBoxがあります。今回はこのInputBoxの使い方についてです。 こんにちは、じゅんぱ店長(@junpa3 ...
続きを読む
vbalastcelleyecatch
エクセルVBAのプログラム作成で、入力データをその都度蓄積していく場合など、 既にデータの入っている最終セルの位置を調べたいという時が多くあります。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAのコード組み立てで、デー ...
続きを読む
vbawithstateeyecatch
エクセルVBAのコードの組み立てでは、視認性や可読性を上げるためにできるだけ記述を簡潔にしたいところです。 Withステートメントは、そういったコード記述を簡潔にする役割があります。 こんにちは、じゅんぱ店長(@junpa33)です。 エク ...
続きを読む
vbacleareyecatch
エクセルVBAでシートを再利用するために、一度内容すべてをクリアしたい時があります。 普通は、Clearメソッドを使ってクリア操作を行いますが・・・ こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAを組み上げる中で、シート ...
続きを読む
vbaoffseteyecatch
エクセルVBAで、セルやセルの選択範囲を移動させるのにOffsetプロパティがあります。 今回の「VBA最速で理解」は、この便利な「Offsetプロパティ」の使い方について説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エ ...
続きを読む
vbanameeyecatch
エクセルVBAで、アクティブセル、アクティブシート、アクティブブックという「現在参照中の・・・」というオブジェクトがあります。 今回の「VBA最速で理解」は、この「ActiveWorkbook」「ActiveSheet」「ActiveCel ...
続きを読む
vbaselacteyecatch
エクセルVBAで、そのコードを実行する先のオブジェクトに、フォーカスするためのメソッドに、「Select」と「Activate」があります。 今回は、このよく似た「Select」と「Activate」について説明します。 こんにちは、じゅん ...
続きを読む
vbavbekidoeyecatch
エクセルVBAを始めようとしたときに一番最初に戸惑うのが、「どうしたらVBAコードを書く表示画面になるのか?」だと思います。 今回は、この「どうしたら、その画面になるんだろう?」についての方法を説明します。 こんにちは、じゅんぱ店長(@ju ...
続きを読む
vbamsgboxeyecatch
エクセルVBAでユーザーフォームを使わなくても、簡単なユーザーとのやり取りならメッセージボックスでも可能です。 今回は、この「ユーザーへのメッセージや選択肢を提示する」ユーザーフォームについての説明をします。 こんにちは、じゅんぱ店長(@j ...
続きを読む
vbadoloopeyecatch
以前の記事でも書いたように、エクセルを使った業務で、「ループの処理」コードは重要な実行処理部分です。 今回は、このもう一つの「ループの処理」である「実行回数が限定されないループ処理」を行うコードについて説明します。 こんにちは、じゅんぱ店長 ...
続きを読む
vbafoldereyecatch
エクセルを使った業務で、「作成したファイルの保存」は作業の最後に必ず必要な部分です。 今回は、この「作成したファイルの保存」を行うための重要部分。保存先フォルダをVBAで指定する方法を説明します。 こんにちは、じゅんぱ店長(@junpa33 ...
続きを読む
vbasengeneyecatch
エクセルVBAのコード組み立てで使う変数。「この変数を使いますよ!」というのが「変数の宣言」です。 今回は、この変数の宣言についてです。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBA のコード組立ての中で、変数の宣言は ...
続きを読む
vbaifjyokeneyecatch
エクセルVBAのコード組み立てで最も必要な、最もよく使うメソッドの1つで「If~Then~Else」があります。 今回はこの「If~Then~Else」メソッドについて設定条件の絞り方のポイントを説明します。 こんにちは、じゅんぱ店長(@j ...
続きを読む
VBACopyeyecatch
エクセルVBAのコード組み立てで、よく使うメソッドの1つで「Copy」メソッドがあります。 今回はこの「Copy」メソッドの使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルVBAで、ワークシートのコピーをを ...
続きを読む
VBAGotoeyecatch001
エクセルVBAのコードで、Gotoステートメントは嫌われ系のグループにはいっています。 それでも、GotoがあるのでVBAコード組み立てがスムーズに、楽に、なる事も多いと言うのも事実です。 こんにちは、じゅんぱ店長(@junpa33)です。 ...
続きを読む
fornextirekoeyecatch
エクセルVBAのコード組み立てで、非常によく使うステートメントの一つにFor~Nextでのループ処理があります。 今回はこのFor~Nextステートメントの使い方を説明します。 こんにちは、じゅんぱ店長(@junpa33)です。 エクセルV ...
続きを読む

 

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