教えて!ExcelVBA!

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

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

       f:id:m_kbou:20200217140110p:plain

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

 

【目次】

 

例題

例題は、<実行>ボタンにVBAマクロが登録されており、ボタンをクリックする事で足し算結果を表示します。内容は、会社名(A3セル)が”B社”の場合、総務部人員(B3セル)と経理部人員(C3セル)を足し算し、結果欄(D3セル)に表示するプログラミング方法となります。

[実行前]:

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

f:id:m_kbou:20200318140104p:plain

[実行後]:

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

f:id:m_kbou:20200318140114p:plain

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

f:id:m_kbou:20200318140126p:plain

 

プログラミング

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

[記述例]:

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

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

Sub サンプル()

    Range("D3") = ""
    If (Trim(Range("A3")) = "B社") Then
        Range("D3") = Range("B3") + Range("C3")
    End If
   
End Sub

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

今回の例題では、A3セルに入力されている会社名が”B社”の場合、B3セルに入力されている総務部人員とC3セルに入力されている経理部人員を足し算するため、IF文による条件判断にてIf (Trim(Range("A3")) = "B社") Thenを記述します。Trim関数は文字列前後にスペース文字が入っていた場合に取り除くための指定となります。

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

処理内容を説明すると、

「A3セルの会社名が"B社"の場合、B3セルとC3セルを足し算し、結果をD3セルに表示します。」

との意味になります。

※上記のサンプルでは足し算を例に説明しましたが、その他引き算掛け算割り算等の計算も同じ様に使用する事ができます。

 

ダウンロード

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

1drv.ms