教えて!ExcelVBA!

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

【ExcelVBA プログラミング】(計算6)条件に合ったセルを計算する(Select文による条件計算)

f:id:m_kbou:20200421093410p:plain

条件に合ったセルを計算する方法について説明します。今回はSelect文を使用した特定条件の場合のみ2つのセルを足し算する方法について説明します。

 

 

例題

会社名(A3セル)が”B社”又は”D社”の場合、総務部人員(B3セル)と経理部人員(C3セル)を足し算し、結果欄(D3セル)に表示するプログラミング方法となります。

[実行前]:

・会社名と総務部及び経理部の人員が入力できる表を用意します。会社名はプルダウンによる選択方式とし、総務部・経理部人員は任意の数字を自分で入力します。

f:id:m_kbou:20200318140431p:plain

[実行後]:

・会社名に”A社”を選択し、総務部人員を10・経理部人員を5と入力した場合、”A社”の場合は足し算を行わないため、結果欄はスペースのままとなります。

f:id:m_kbou:20200318140641p:plain

・会社名に”B社”を選択し、総務部人員を10・経理部人員を5と入力した場合、”B社”の場合は足し算を行うため、結果欄に15が表示されます。

f:id:m_kbou:20200318140653p:plain

・会社名に”C社”を選択し、総務部人員を10・経理部人員を5と入力した場合、”C社”の場合は足し算を行わないため、結果欄はスペースのままとなります。

f:id:m_kbou:20200318140703p:plain

・会社名に”D社”を選択し、総務部人員を10・経理部人員を5と入力した場合、”D社”の場合は足し算を行うため、結果欄に15が表示されます。

f:id:m_kbou:20200318140713p:plain

 

プログラミング

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

[記述例]:

Sub サンプル()

  Range("D3") = ""
  Select Case Trim(Range("A3"))
    Case "B社"
      Range("D3") = Range("B3") + Range("C3")
    Case "D社"
      Range("D3") = Range("B3") + Range("C3")
  End Select

End Sub

今回の例題では、A3セルに入力されている会社名が”B社”又は”D社”の場合、B3セルに入力されている総務部人員とC3セルに入力されている経理部人員を足し算するため、条件判断にSelect文を使用します。

条件判断セルはA3となるため、Trim(Range("A3"))と記述します。Trim関数は文字列前後にスペース文字が入っていた場合に取り除くための指定となります。

入力されたデータが”B社”・”D社”であるか否かの判断をするため、Case "B社"・Case "D社"を各々指定します。

条件が一致した場合には足し算し、結果をD3セルに表示するためRange("D3") = Range("B3") + Range("C3")と記述します。

処理内容を説明すると、

「A3セルに”B社”又は”D社”が入力されている場合は、B3セルとC3セルを足し算し、結果をD3セルに表示します。」

との意味になります。

f:id:m_kbou:20210427081351p:plain

 

ダウンロード

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

drive.google.com