プログラムの肝! 条件分岐と繰り返しの基本文法とさまざまな書き方:Excelマクロ/VBAで始める業務自動化プログラミング入門(6)(3/4 ページ)
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、For〜Next、Step、If〜Then、Else、Exit、比較演算子、Select〜Case、Do While/Until〜Loopの使い方などを解説する【Windows 10、Excel 2016に対応】。
Select〜Caseを使った、条件が多い場合の条件分岐
次にSelect〜Caseを使った複数の条件分岐について解説しよう。
条件が多い場合は、上記ElseIfよりも、この処理を使うと簡潔にマクロを書ける。構文は下記のようになる。
Select〜Case構文
Select Case {元になる式}
Case {比較する式1}
'〜ここに{元になる式}と{比較する式1}が一致する場合の処理を書く〜
Case {比較する式2}
'〜ここに{元になる式}と{比較する式2}が一致する場合の処理を書く〜
……
Case {比較する式N}
'〜ここに{元になる式}と{比較する式N}が一致する場合の処理を書く〜
Case Else
'〜ここに{元になる式}がどの式とも一致しなかった場合の処理を書く〜
End Select
例えば、図8のような氏名別の英語の点数があったとしよう
「ランク」ボタンをクリックすると、「ランク」の欄に、「ランクA」から「ランクE」までの値が入るようにしてみよう。マクロはリスト6のようになる。
Option Explicit
Sub ランクを付ける()
Dim i As Integer
For i = 5 To 12
Select Case Range("C" & i).Value
Case Is >= 90
Range("D" & i).Value = "ランクA"
Case Is >= 80
Range("D" & i).Value = "ランクB"
Case Is >= 70
Range("D" & i).Value = "ランクC"
Case Is >= 60
Range("D" & i).Value = "ランクD"
Case Is >= 50
Range("D" & i).Value = "ランクE"
Case Else
Range("D" & i).Value = "ランクF"
End Select
Next
End Sub
「得点」のセルを繰り返し処理しながらSelect〜Caseで条件分岐を行い、「ランク」ボタンをクリックすると点数に応じてランク付けされる。「ランク」ボタンには「ランクを付ける」マクロを登録しておく。
実行すると、図9のように表示される。
条件が成立している間、処理を繰り返すDo While〜Loop
次に、条件が成立している間、処理を繰り返す、Do While〜Loopについて解説しよう。これは、条件が成立している間、処理を繰り返す。構文は下記の通りだ。
Do While〜Loop構文
Do While {条件}
'〜ここに条件が成
書く〜
Exit Do
Loop
図10のような売上金額の入ったデータがあったとする。
「売上が500,000円以下の場合」ボタンをクリックすると、ボタンのタイトルの金額であった場合、背景色が赤で塗りつぶされる。マクロはリスト7だ。
Sub 売上が50万以下の場合()
Dim no As Long
no = 5
Do While Cells(no, 13) <> ""
If Cells(no, 13).Value < 500000 Then
Cells(no, 13).Interior.ColorIndex = 3
End If
no = no + 1
Loop
End Sub
Do While〜Loopを使って、5行目から13列(M)目に対して繰り返し処理を行う。繰り返し処理の中でセルの値が50万円以下の場合は、そのセルの背景色を赤で塗りつぶす。「no=no+1」はセルが空でない間、行を下りながら空のセルが見つかるまで処理を繰り返している。
「no=no+1」は変数noの数を1ずつ増加させている意味になる。ここでは、1行ずつ下に移動する意味になる。
実行すると、図11のようになる。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Excelマクロ/VBAリファレンス用途別・キーワード別一覧超まとめ
ピボットテーブルとは何か──「そもそも、何をする機能か」を理解する
Excelを通じて「ピボットテーブル」の基礎を学び、データ分析を実践するまでを習得する本連載。初回はピボットテーブルの基礎と、「どんなことができるのか」を解説する。
どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう。



