VBAマクロでif文を使ってみよう
はじめに
ほかのプログラミング言語に条件分岐があるようにVBAマクロでも条件分岐があります。
ここではif文を取り上げます。
1章 if文をつかうとどんないいことがあるのか
VBAマクロで「If文」を使うと、条件に応じた判断や動きができるようになるため、マクロの幅が一気に広がります。これは、たとえば「もしこのセルの値が100以上だったらこうする」といった、“もし〜なら”という考え方をマクロに組み込めるということです。
人がエクセルで作業をするとき、「この数字が大きいから色をつけよう」「この商品は在庫がないから注意しよう」などと判断して行動しますよね。If文を使えば、そうした判断をマクロにさせることができます。つまり、マクロが自動的に考えて処理を変えることができるのです。
たとえば、売上データの中から「売上が目標を超えているものだけを集計する」や、「空白のセルがあれば注意のメッセージを出す」といったことができます。こうした処理は、If文がなければ全部同じ動きしかできませんが、If文があることで状況に応じて処理を変えることが可能になります。
また、他の構文(くり返し処理など)と組み合わせることで、たくさんのデータの中から特定の条件に合うものだけに対応するといった、現実の業務に近い処理ができるようになります。
つまり、If文は、使いこなせるようになるとマクロの自動化がより賢く、柔軟になります。作業の効率化やエラーの防止にもつながる、非常に大切な要素です。
2章 実際にif文を使ってみよう
ここでは例として、integer型の変数iを1~10のランダムな数で定義して、奇数なら「Hello,World!(i)」、偶数なら「Bye,World!(i)」と表示することを考えたいと思います。
まず、ランダムに数字を決定するコードは、
int((10*rnd)+1)
で表現できます。
またIF文は
If 〇〇 Then
処理
End If
と書きます。
よってコードは以下のようになります。
Sub ボタン1_Click()
Dim i As Integer
Dim text As String
i = Int((10 * Rnd) + 1)
If i Mod 2 = 1 Then
text = "Hello,World!" + Str(i)
Else
text = "Bye,World!" + Str(i)
End If
MsgBox text
End Sub
これを実行すると、iの値が毎回変わって、結果も異なるものが表示されます。
さいごに
今回はif文について取り上げました。
if文を使いこなせるようになると、できることが圧倒的に増えます。みなさんもぜひ使いこなしてください。
株式会社ONE WEDGE
【Serverlessで世の中をもっと楽しく】
ONE WEDGEはServerlessシステム開発を中核技術としてWeb系システム開発、AWS/GCPを利用した業務システム・サービス開発、PWAを用いたモバイル開発、Alexaスキル開発など、元気と技術力を武器にお客様に真摯に向き合う価値創造企業です。
Discussion