Excelマクロの練習⑦(変数活用)

wp-datacare

今回の課題は、変数を活用した繰り返し処理です。

複雑な処理では、多くの変数が使用されます。
変数に慣れるためにも、積極的に変数を使用していきます。

練習用のファイルはこちらからダウンロードできます。

今回の課題は以下のような一覧です。

セルJ5に売上合計額を表示させます。

また、PS区分と貸料金は以下のようにリストで選択できるようにしています。

今回は、リストで条件を変更する事で結果が異なる仕様になっています。
実務に近い練習問題です。

模範解答は以下のとおりです。

Sub サンプル()
  Dim i As Long
  Dim strPS As String ‘PS区分用の変数
  Dim lngPrice As Long ‘貸料金用の変数
  Dim lngUriage As Long ‘売上額を加算させるための変数

  strPS = Range(“H5”).Value ‘PS区分を変数へ代入
  lngPrice = Range(“I5”).Value ‘貸料金を変数へ代入

  For i = 5 To 24

    If Cells(i, 3).Value = strPS Then ‘PS区分が一致するか

      If Cells(i, 4).Value = lngPrice Then ‘貸料金が一致するか

        lngUriage = lngUriage + Cells(i, 6).Value ‘売上額を加算

      End If

    End If

  Next i

  Range(“J5”).Value = lngUriage ‘加算した売上額をセルに入力

End Sub

このコードを実行すると以下のようになります。(PS区分貸料金により結果はことなります)

今までの練習と異なるのは、strPS と lngPrice の変数を使用している事です。

strPS には、パチンコ又はスロット の文字が入るため 文字列型のStringを使用します。
lngPrice には、整数の貸料金が入るため 長数値型のLongを使用します。

貸料金を入れる変数については注意が必要です。

Long型は正数しか代入できません。

今回の練習問題の貸料金は全て整数です。

 

しかし、最近のホールでは小数点の貸料金が数多く存在します。

  1.25円をLong型に代入すると 1

  1.75円をLong型に代入すると 2

四捨五入して整数になります。

 

私がパチンコ関係のマクロを作成する場合は 貸料金はDouble型を使用します。小数点もそのまま代入できます。

Double型であれば4円でも4.31円でも問題なく代入できます。

5行目~24行目の条件に一致する売上額を 変数 lngUriage に加算させます。
全ての行の処理が終わったら lngUriageに代入したら値をセルJ5に入力させています。

今回はここまでです。
次回は、変数名(命名)について解説をします。

ABOUT ME
酒見 拓也
酒見 拓也
代表取締役
パチンコ企業向けにExcelマクロを使って業務の自動化、効率化のやり方を発信しています。 企業向けに「Excelマクロ研修」も行っています。
記事URLをコピーしました