資料請求番号:SH45
プログラミング言語でよく使われるのが繰り返し文と分岐文です。もちろんVBAでも、繰り返しや分岐の操作をすることができます。
※マクロを全く使用したことのない方はこちら。VBAの始め方や値の代入について説明しています。
[blogcard url=”http://shimaphoto03.com/program/macro_fund/”]
C言語は繰り返しと分岐を上手く使ってプログラムを書くけん、VBAでも繰り返しや分岐の操作ってできるんか?
うん!もちろんできるよ!これをエクセルと組み合わせてグラフィカルに計算を進めるのがVBAの醍醐味なのよ!
今回はその方法を教えるね!まずはサンプルコードから!
※プログラムここから※
Sub roop()
Dim i As Integer
Dim num As Double
With Worksheets(“Sheet1”)
.Cells(2, 3) = 1
num = .Cells(2, 3)
For i = 1 To 10
.Cells(i, 4) = num * i
Next i
For i = 1 To 10 Step 2
.Cells(i, 5) = num * i
Next i
End With
End Sub
※プログラムここまで※
実行するとこんな感じの画面になるよ!
VBAもfor文使って繰り返しを表現するたいね~。For~Nextの間に繰り返したい操作を書くんやな。
うん!For文の中にCells(i,4)ってあるでしょ?つまり、セルを繰り返し変数iと連動させることができるのよ。
For文の上の2行「.Cells(2, 3) = 1
num = .Cells(2, 3)」でnumに1が代入されているでしょ?この状態で
1ループ目はCells(1,4)=num*1だから、D1セルに1が入る。
2ループ目はCells(2,4)=num*2だから、D2セルに2が入る。
3ループ目はCells(3,4)=num*3だから、D3セルに3が入る。
・・・といった具合に10まで繰り返すのよ。
なるほど・・・。これで俺が今までやっていた科学技術計算をマクロ化できそうやなぁ~。
あとね、セル位置って別にA1とかA3とかで指定しても値を代入することはできるのよ。
あ、ホンマや。
でも、わざわざ、Cells(1,4)みたいなセルの指定の仕方をするのは、
今みたいにFor文と組ませるためなの。
そっか。A1,A2のような書き方やとiに置き換えられへんもんな~。
if文も書けるんよな?
もちろん!こんな感じにね!
サンプルプログラムを示します。
※プログラムここから※
Sub even_odd()
Dim i As Integer
Dim num As Double
With Worksheets(“Sheet1”)
.Cells(1, 1) = 1
num = .Cells(1, 1)
For i = 1 To 10 Step 1
If i Mod 2 = 0 Then
.Cells(i, 2) = num * i
Else
.Cells(i, 3) = num * i
End If
Next i
End With
End Sub
※プログラムここまで※
これは・・・。i Mod 2と言うのは、iを2で割った余りを求めるって意味やな?
そうそう!それが0なら偶数で、そうでなければ奇数でしょ?
そっか。i = 2,4,6・・・なら、i Mod 2 = 0がTrueだから、2列目(B列)に出て、
それ以外の1,3,5・・・は3列目(C列)に出るのか・・。
そうその通り!実行すればこんな感じになるよ!
VBAでの基本的なfor文やif文の使い方をまとめました。
上記サンプルプログラムは、そのままコピーアンドペーストすれば使えるようになっています。ぜひ、自分でコピーアンドペーストして遊んでみてください。