教えて!ExcelVBA!

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

【ExcelVBA プログラミング】(計算7)ループによる計算をする(For~Next文による計算)

f:id:m_kbou:20200421093458p:plain

ループによる計算をする方法について説明します。今回はFor~Next文を使用した足し算処理について説明します。

 

 

例題

各会社(A列の3行目~6行目セル)に対する総務部(B列の3行目~6行目セル)及び経理部(C列の3行目~6行目セル)の人員を足し算し、結果を結果欄(D列の3行目~6行目セル)に表示するプログラミング方法となります。

[実行前]:

A列3行目~6行目に会社名、B列3行目~6行目に総務部人員、C列3行目~6行目に経理部人員が入力されている。

f:id:m_kbou:20200428061755p:plain

[実行後]:

会社毎の総務部人員と経理部人員の足し算結果がD列3行目~6行目の結果欄に表示されます。

f:id:m_kbou:20200428061813p:plain

 

プログラミング

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

[記述例]:

Sub サンプル()

  Dim 行 As Double

  For 行 = 3 To 6
    Range("D" & 行) = ""
    Range("D" & 行) = Range("B" & 行) + Range("C" & 行)
  Next

End Sub

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

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

このループによりB列及びC列の3行目~6行目に入力されている会社毎の総務部人員と経理部人員を足し算し、結果をD列に表示するため、Range("D" & 行) = Range("B" & 行) + Range("C" & 行)と記述します。

ループ内の処理内容を説明すると、

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

まず最初に変数:行に3がセットされるため、B3セルの値(10)とC3セルの値(5)が足し算され、D3セルには結果の15(10+5=15)が表示されます。

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

次に変数:行に4がセットされるため、B4セルの値(20)とC4セルの値(3)が足し算され、D4セルには結果の23(20+3=23)が表示されます。

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

次に変数:行に5がセットされるため、B5セルの値(5)とC5セルの値(1)が足し算され、D5セルには結果の6(5+1=6)が表示されます。

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

最後に変数:行に6がセットされるため、B6セルの値(50)とC6セルの値(40)が足し算され、D6セルには結果の90(50+40=90)が表示されます。

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

との意味になります。

f:id:m_kbou:20210427083454p:plain

 

ダウンロード

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

drive.google.com