ループによる計算をする方法について説明します。今回はDo~Loop文を使用した足し算処理について説明します。
例題
各会社(A列の3行目~6行目セル)に対する総務部(B列の3行目~6行目セル)及び経理部(C列の3行目~6行目セル)の人員を足し算し、結果を結果欄(D列の3行目~6行目セル)に表示するプログラミング方法となります。
[実行前]:
A列3行目~6行目に会社名、B列3行目~6行目に総務部人員、C列3行目~6行目に経理部人員が入力されている。
[実行後]:
会社毎の総務部人員と経理部人員の足し算結果がD列3行目~6行目の結果欄に表示されます。
プログラミング
プログラミングは以下の通りとなります。
[記述例]:
Sub サンプル()
Dim 行 As Double
行 = 3
Do Until Trim(Range("A" & 行)) = ""
Range("D" & 行) = ""
Range("D" & 行) = Range("B" & 行) + Range("C" & 行)
行 = 行 + 1
Loop
End Sub
最初に変数:行を指定します。
次に変数:行には初期値として3をセットします。
最後にDo~Loop文を使用して変数:行に数字を1づつ足してループさせます。
ループはA列のセルにデータが入力されていない場合に抜ける事とするため、Trim(Range("A" & 行)) = ""と記述します。Trim関数は文字列前後にスペース文字が入っていた場合に取り除くための指定となります。
ループが続く限りB列及びC列に入力されている会社毎の総務部人員と経理部人員を足し算し、結果をD列に表示するため、Range("D" & 行) = Range("B" & 行) + Range("C" & 行)と記述します。
ループ内の処理内容を説明すると、
---------------------------------
最初のループでは変数:行に3がセットされているので、A3セルにデータが入力されているか判定します。A3セルにはデータが入力されているため、B3セルの値(10)とC3セルの値(5)を足し算し、D3セルに結果の15(10+5=15)を表示します。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は3+1=4となります。
---------------------------------
次のループでは変数:行に4がセットされているので、A4セルにデータが入力されているか判定します。A4セルにはデータが入力されているため、B4セルの値(20)とC4セルの値(3)を足し算し、D4セルに結果の23(20+3=23)を表示します。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は4+1=5となります。
---------------------------------
次のループでは変数:行に5がセットされているので、A5セルにデータが入力されているか判定します。A5セルにはデータが入力されているため、B5セルの値(5)とC5セルの値(1)を足し算し、D5セルには結果の6(5+1=6)を表示します。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は5+1=6となります。
---------------------------------
次のループでは変数:行に6がセットされているので、A6セルにデータが入力されているか判定します。A6セルにはデータが入力されているため、B6セルの値(50)とC6セルの値(40)を足し算し、D6セルに結果の90(50+40=90)を表示します。その後に変数:行に1を足し込みます。この足し込みにより変数:行の値は6+1=7となります。
---------------------------------
次のループでは変数:行に7がセットされているので、A7セルにデータが入力されているか判定します。A7セルにはデータが入力されていないため、ループを抜ける事になります。
---------------------------------
との意味になります。
ダウンロード
上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。