Excel VBA

1 から 10 まで足すといくつになる?

 ちなみに、Excelには連続で値を書き込むオートフィルの機能があります。この機能を使えば連続で 1 から 100 まで順に値を書き込むことができます。セルの右下を下にドラッグすることで連番を作成できるのです。実際数字を書き込むだけの作業であれば、VBAでプログラムを作らなくてもこのオートフィルを使うだけで事足りる場面が多いことでしょう。ですから実際には、VBAで連続処理したい場面というのは、もっと複雑な値を書き込みたい場面です。

 ここでは VBAで計算する例として、以下のような足し算の表を作ってみます。これは、1 から 10 まで順に足すといくつになるのかを確かめる表です。この表を見ると 1 から 10 まで、1+2+3+4+5...と順番に足していくと最終的に 55 になることがわかります。

 この表を自動で作成する VBA のプログラムを作ってみます。


Sub add1to10()
	' シートのヘッダーを書き込む
	Range("A1").Value = "iの値"
	Range("B1").Value = "合計値"
	
	' 合計値を初期化する --- (※1)
	goukei = 0
	
	' 1から10まで繰り返す --- (※2)
	For i = 1 To 10
		Row = i + 1
		
		' 番号を書き込む --- (※3)
		Cells(Row, 1) = i
		
		' 合計値に i を加算 --- (※4)
		goukei = goukei + i
		
		' 合計値を書き込む --- (※5)
		Cells(Row, 2) = goukei
	Next
End Sub

 これを実行すると 1 から 10 まで順に加算していく表が作成されます。

 このプログラムではこれまでに出てきた要素を組み合わせて使っています。プログラムの流れを追ってみます。(※1) では、変数「goukei」を 0 で初期化します。(※2) 以降の部分で For文を使って Nextまでの間を 1 から 10 まで順に繰り返します。(※3) では Cells を利用して変数 i の値を A列に書き込みます。(※4) で変数「goukei」に変数 i の値を加算し、(※5) では B列に合計値を書き込みます。