教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA プログラミング】(条件判断9)入力データを条件判断し結果を表示する方法(Select文とFor~Next文の組み合わせによる単純判断)

f:id:m_kbou:20200420172922p:plain

 入力したデータを条件判断し結果を表示する方法について説明します。今回はSelect文とFor~Next文の組み合わせによる単純判断について説明します。

 

 

例題

例題は、<実行>ボタンにVBAマクロが登録されており、ボタンをクリックする事で入力したデータを条件判断して結果を表示します。内容は、名前欄(A列の3行目~8行目セル)に”大山”の名前が入力されている場合は結果欄(B列セル)に”●”を表示し、”久保木”の名前が入力されている場合は結果欄に”▲”を表示し、それ以外の名前が入力されている場合は結果欄に”×”を表示するプログラミング方法となります。

[実行前]:

A列の3行目~8行目に名前が入力されている。

f:id:m_kbou:20200316180042p:plain

[実行後]:

名前欄に”大山”が入力されている場合は”●”、”久保木”が入力されている場合は”▲”、それ以外が入力されている場合は”×”をB列の結果欄に表示する。

f:id:m_kbou:20200316180059p:plain

 

プログラミング

プログラミングは以下の通りとなります。

[記述例]:

Sub サンプル()

  Dim 行 As Double

  For 行 = 3 To 8
    Select Case Trim(Range("A" & 行))
      Case "大山"
        Range("B" & 行) = "●"
      Case "久保木"
        Range("B" & 行) = "▲"
      Case Else
        Range("B" & 行) = "×"
    End Select
  Next

End Sub

最初に変数:行を指定します。

次にFor~Next文を使用して変数:行に3~8までの数値を順次セットしながらループさせます。

このループによりA列の3行目~8行目に入力されている名前を条件判断します。

条件判断にはSelect文を使用し、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セルには”久保木”の名前が入力されているため、B3セルへの結果は”▲”をセットします。

---------------------------------

次に変数:行に4がセットされ、A4セルの名前を判断します。A4セルには”照沼”の名前が入力されているため、B4セルへの結果は”×”をセットします。

---------------------------------

次に変数:行に5がセットされ、A5セルの名前を判断します。A5セルには”大山”の名前が入力されているため、B5セルへの結果は”●”をセットします。

---------------------------------

次に変数:行に6がセットされ、A6セルの名前を判断します。A6セルには”遠藤”の名前が入力されているため、B6セルへの結果は”×”をセットします。

---------------------------------

次に変数:行に7がセットされ、A7セルの名前を判断します。A7セルには”落合”の名前が入力されているため、B7セルへの結果は”×”をセットします。

---------------------------------

次に変数:行に8がセットされ、A8セルの名前を判断します。A8セルには”鈴木”の名前が入力されているため、B8セルへの結果は”×”をセットします。

---------------------------------

との意味になります。

f:id:m_kbou:20210426153315p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、ボタンにプログラムを割り当てるにはこちらを参考にして下さい。

 

ダウンロード

上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。

drive.google.com

 

関連プログラム

www.osiete-excelvba.work