入力したデータを条件判断し結果を表示する方法について説明します。今回はSelect文とDo~Loop文の組み合わせによる単純判断について説明します。
例題
名前欄(A列の3行目~8行目セル)に”大山”の名前が入力されている場合は結果欄(B列セル)に”●”を表示し、”久保木”の名前が入力されている場合は結果欄に”▲”を表示し、それ以外の名前が入力されている場合は結果欄に”×”を表示するプログラミング方法となります。
[実行前]:
A列の3行目~8行目に名前が入力されている。
[実行後]:
名前欄に”大山”が入力されている場合は”●”、”久保木”が入力されている場合は”▲”、それ以外が入力されている場合は”×”をB列の結果欄に表示する。
プログラミング
プログラミングは以下の通りとなります。
[記述例]:
Sub サンプル()
Dim 行 As Double
行 = 3
Do Until Trim(Range("A" & 行)) = ""
Select Case Trim(Range("A" & 行))
Case "大山"
Range("B" & 行) = "●"
Case "久保木"
Range("B" & 行) = "▲"
Case Else
Range("B" & 行) = "×"
End Select
行 = 行 + 1
Loop
End Sub
最初に変数:行を指定します。
次に初期値として変数:行に3をセットします。
最後にDo~Loop文を使用して条件判断を行いながら変数:行に数字を1づつ足してループさせます。
ループはA列のセルにデータが入力されていない場合に抜ける事とするため、Trim(Range("A" & 行)) = ""と記述します。Trim関数は文字列前後にスペース文字が入っていた場合に取り除くための指定となります。
名前は”大山”・”久保木”・それ以外で判断するため、Case "大山"・Case "久保木"・Case Elseで各々記述します。
結果はB列に出力するため、A列セルに”大山”が入力されている場合はB列セルに"●"を表示するRange("B" & 行) = "●"を記述し、A列セルに”久保木”が入力されている場合はB列セルに"▲"を表示するRange("B" & 行) = "▲"を記述し、A列セルに上記以外が入力されている場合はB列セルに"×"を表示するRange("B" & 行) = "×"を記述します。
ループ内の処理内容を説明すると、
---------------------------------
まず最初に変数:行に3がセットされているので、A3セルにデータが入力されているか判定します。A3セルにはデータが入力されているため、A3セルの名前を判断します。A3セルには”久保木”の名前が入力されているため、B3セルへの結果は”▲”をセットします。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は3+1=4となります。
---------------------------------
次のループでは変数:行に4がセットされているので、A4セルにデータが入力されているか判定します。A4セルにはデータが入力されているため、A4セルの名前を判断します。A4セルには”照沼”の名前が入力されているため、B4セルへの結果は”×”をセットします。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は4+1=5となります。
---------------------------------
次のループでは変数:行に5がセットされているので、A5セルにデータが入力されているか判定します。A5セルにはデータが入力されているため、A5セルの名前を判断します。A5セルには”大山”の名前が入力されているため、B5セルへの結果は”●”をセットします。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は5+1=6となります。
---------------------------------
次のループでは変数:行に6がセットされているので、A6セルにデータが入力されているか判定します。A6セルにはデータが入力されているため、A6セルの名前を判断します。A6セルには”遠藤”の名前が入力されているため、B6セルへの結果は”×”をセットします。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は6+1=7となります。
---------------------------------
次のループでは変数:行に7がセットされているので、A7セルにデータが入力されているか判定します。A7セルにはデータが入力されているため、A7セルの名前を判断します。A7セルには”落合”の名前が入力されているため、B7セルへの結果は”×”をセットします。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は7+1=8となります。
---------------------------------
次のループでは変数:行に8がセットされているので、A8セルにデータが入力されているか判定します。A8セルにはデータが入力されているため、A8セルの名前を判断します。A8セルには”鈴木”の名前が入力されているため、B8セルへの結果は”×”をセットします。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は8+1=9となります。
---------------------------------
次のループでは変数:行に9がセットされているので、A9セルにデータが入力されているか判定します。A9セルにはデータが入力されていないため、ループを抜ける事になります。
---------------------------------
との意味になります。
ダウンロード
上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。