例えば、以下のようなデータがあります。
便宜上ここでは、ある職場のメンバーの年齢が書いてある情報と仮定しておきます。
ここから、年齢が30歳以上の人が何人いるか調べるというマクロを作ってみます。
調べた後に、ウィンドウで30歳以上の人は〇〇人です。といった具体にメッセージを表示させてみます。
ポイントは、条件分岐です。if文を使って、30以上の人が何人いるかを
どのように表現していくかです。
また、どのようにセルの情報を参照していくかも一つのポイントです。
今回は、forEach文という構文を使用しています。
それでは、マクロの方を見ていきましょう。
Sub Q5_Answer()
Dim i As Range
Dim cnt As Integer
For Each i In Range("C2:C8")
If i.Value >= 30 Then
cnt = cnt + 1
End If
Next i
MsgBox "30歳以上の人数は" & cnt & "人です。"
End Sub
3行目にポイントとなるForEach文が出てきていますね。
ForEach文は複数のデータを扱うときに便利な構文です。
例えば、今回の例でいうと、Range("C2:C8")としているので、
iには、C2~C8のRangeの情報が順番に格納されていきます。
forEach文のループ内に、30以上のデータを調べるif文を記述し、
条件に合致したら、cntという人数をカウントする変数に、値を足していきます。
そして、最後MsgBoxという関数で、メッセージを表示させています。
ちなみに、マクロを実行した結果は以下のような画面となります。
ちゃんと、人数が表示されていますね。
もちろん、データを変えれば結果も変わりますので、試してみてください。
今回はかなり簡易なマクロではありますが、いろいろ応用ができます。
例えば、アンケートに"はい"と答えた人の数をカウントするマクロだったりとか、
飲み会の出欠をカウントする時だったりとか特定のデータを調べるというシーンは、
日常的に結構あったりします。
そういった場合にマクロに落とし込むことができればかなり楽になるでしょう。