Excelマクロの練習⑧(繰り返し処理の中に繰り返し処理)

今回の課題は、繰り返し処理の中に繰り返し処理があります。
少々混乱するかもしれません。
しかし、インデント(字下げ)の設定を使ってそれぞれの繰り返し処理を区別させると区別できます。
練習用のファイルはこちらからダウンロードできます。

前回の練習問題とほぼ同じです。
オレンジ色のセルの部分が異なっています。
前回の算出は一つだけでしたが、今回は種別が4つあります。
今回は、種別を4つ算出させます。
どんどんレベルがアップして実務っぽいですね。
模範解答は以下のとおりです。
(ダウンロード用できるExcelブックにも模範解答はあります。)

このコードを実行すると以下のようになります。

今回次の順番で処理を行っています。
- パチンコ 4円 の売上額の取得
- パチンコ 1円 の売上額の取得
- スロット 20円 の売上額の取得
- スロット 5円 の売上額の取得
これがオレンジのセルの部分です。
また、前回の問題と大きく異なるのが以下のコードです。
lngUriage = 0 ‘売上を加算する変数の値をゼロに戻す |
これは 「パチンコ4円の売上額を取得する処理」の次に「パチンコ1円の売上額を取得する処理」になります。
「パチンコ1円の売上額を取得する処理」の最初の時点で、lngUriageにパチンコ4円の売上の数値が残っています。
そのためにゼロに戻す必要があります。
もしゼロに戻さなかった場合次のようになります。

下に行けば行くほど数値が大きくなっています。
スロット20円の売上合計額 には パチンコ4円+パチンコ1円+スロット20円 の合計になっています。
変数をゼロや空白に戻す処理は、実務ではよく使います。
私もたまに忘れて、お客様のExcelマクロ作成でミスる事があります。
注意が必要です。
今回の問題はステートメントが盛り沢山ですね。
Ifステートメントの中にIfステートメント、さらにFor~Nextステートメントで囲って、その上にFor~Nextステートメントで囲っています。
頭がパニック状態になると思います。
通常ここら辺からExcelマクロの学習で脱落者が増えていきます。
混乱せずにプログラムコードを組む方法があります。
自分の名前を付けて「酒見メソッド」と言っていますが。
こちらについては、近日解説をします。
目からうろこです。お楽しみに。
今回はここまでです。