広告
お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!
ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!
ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!
プログラムの基本は
(1)上から順番に
(2)条件で分かれ道
(3)繰り返し
でしたね!
今回から最後の(3)繰り返しをやっていきます!
本格的なプログラミングの始まりですね!
繰り返し命令を誤って使うと無限ループ(ずっと繰り返しでプログラムが止まらない状態)などに入ってコンピューターに負担をかけてしまう場合があるのできちんと理解して使いましょう!
通常の無限ループの場合は「Esc」キーまたは「Ctrl + Break」キーをすぐに押すと
プログラムが中断されてこのようなメッセージが表示されますので「終了」を選択すれば止まってくれます。
もしこれで止まらない場合は近くの詳しい人に聞きましょう!(プログラムの内容が消えてしまう可能性もあります!)
今回から結果を表示するのに「Cells」命令をたくさん使うので少しおさらいしておきましょう。
Worksheets("シートの名前").Cells(行の位置,列の位置).Value = "メッセージ"
「Cells」命令はセルの位置を数値で指定してそこに結果を書き込んだり、そこの値を取得したりする事ができます。
たとえば「Cells(1,1)」→「A1」セル、「Cells(5,2)」→「B5」セルみたいな感じです。
「Range」命令との大きな違いは数値で指定できるので、変数を使う事ができます。
Dim suji As Integer Dim suji2 As Integer suji = 5 suji2 = 2 Worksheets("sheet1").Cells(suji,suji2).Value = "メッセージ"
この場合は「Cells(5,2)」を指定したのと同じ意味になります。
この点をよく踏まえておきましょう。
それでは「For(フォー)」命令を使っていきたいと思います。
'10日目 プログラム1 Sub test() Dim suji As Integer For suji = 1 To 10 Step 1 Worksheets("sheet1").Cells(suji,1).Value = "おはよう!" Next suji End Sub
「For」命令で繰り返し条件を決めて、その中の命令を繰り返します。
まず繰り返し用の変数を用意します。そして「For」命令の登場です!
For カウンタ変数初期化 To 最終値 Step 進み方 繰り返したい命令 Next カウンタ変数 ↓ For suji = 1 To 10 Step 1 Worksheets.("sheet1").Cells(i,1).Value = "おはよう!" Next suji
「For カウンタ変数初期化」~「Next カウンタ変数」で1セットとなります。
一つずつ見ていきましょう。
suji = 1
ここで最初の数を決めます。
To 10
次に「カウンタ変数」の最終値、終わりの値を決めます。
「カウンタ変数」がこの値になるまで繰り返しをします。
いくつずつ進むかをここで決められます。
Step 1
この場合はくり返すたびに変数「suji」に「+1」されます!
なので結果「Cells(1,1)」→「Cells(2,1)」→「Cells(3,1)」・・・「Cells(10,1)」のように進みます。
一つずつだけ進めたい場合はこの部分を省略する事ができます。
ちなみに、ここを「Step 2」とするとくり返すたびに変数「suji」が「+2」されるので先ほどのプログラムであれば変数「suji」の値は
1 3 5 7 9
のように進みます。
その結果
このようになります。
繰り返しの条件などをいろいろ変えて試してみましょう!
広告
それでは「習うより慣れろ」だと思いますのでたくさん練習して身に付けてしまいましょう!
'10日目 プログラム2 Sub test() Dim suji As Integer For suji = 1 To 5 Worksheets("sheet1").Cells(1,suji).Value = "おいっす" Next suji End Sub
まずはキホンですね!変数「suji」が「1~5」の間繰り返しをします。
「Cells」命令の列位置に変数「suji」を使えば横に表示する事ができますね!
「10」までカウントして「3」の倍数がきたら「おいっす!」と叫んでみましょう!
'10日目 プログラム3 Sub test() Dim suji As Integer For suji = 1 To 10 If suji = 3 Then Worksheets("sheet1").Cells(1,1).Value = "suji = " & suji & ":おいっす!" ElseIf suji = 6 Then Worksheets("sheet1").Cells(2,1).Value = "suji = " & suji & ":おいっす!" ElseIf suji = 9 Then Worksheets("sheet1").Cells(3,1).Value = "suji = " & suji & ":おいっす!" End If Next suji End Sub
繰り返しをしている途中で「If」命令の条件が合えば「おいっす!」と表示します。
繰り返しを想像しながらプログラムを作りましょう!
'10日目 プログラム4 Sub test() Dim suji As Integer Dim suji2 As Integer suji = 1 suji2 = 4 For suji = 1 To 4 Worksheets("sheet1").Cells(suji,1).Value = "suji = " & suji Worksheets("sheet1").Cells(suji,3).Value = "suji2 = " & suji2 suji2 = suji2 - 1 Next suji End Sub
繰り返し中一緒に他の変数「suji2」も変化させています。
では繰り返し命令の定番プログラム
「1 + 2 + 3 + 4 + 5 ~ 98 + 99 + 100」
と順番に足していく「100まで計算」プログラムを作ってみましょう!
'10日目 プログラム5 Sub test() Dim suji As Integer Dim goukei As Integer suji = 1 goukei = 0 For suji = 1 To 100 goukei = goukei + suji Next suji MsgBox "1~100まで足し算答えは" & goukei & "です!" End Sub
合計を入れる為の変数「goukei」にひたすら増加し続ける変数「suji」を足し合わせております。
繰り返し0回目 goukei(0) + suji(0) → goukei(0)
繰り返し1回目 goukei(0) + suji(1) → goukei(1)
繰り返し2回目 goukei(1) + suji(2) → goukei(3)
繰り返し3回目 goukei(3) + suji(3) → goukei(6)
繰り返し4回目 goukei(6) + suji(4) → goukei(10)
繰り返し5回目 goukei(10) + suji(5) → goukei(15)
このように繰り返し命令を使って、変数「goukei」の値を塗り替えていく事で、複雑そうな計算もシンプルな繰り返し命令で書く事ができます!
繰り返しを途中で抜ける技術も大事ですね!
'10日目 プログラム6 Sub test() Dim suji As Integer For suji = 1 To 10 Worksheets("sheet1").Cells(suji,1).Value = "suji = " & suji If suji = 6 Then Exit For End If Next suji Worksheets("sheet1").Cells(7,1).Value = "変数「suji」が6になったので繰り返しを終了しました!" End Sub
繰り返しを途中で抜ける「Exit For」になります。
これを書けばそこで繰り返しから抜ける事ができます。
通常は「If」命令と組み合わせて条件が合致した場合に「Exit For」で繰り返しを抜けるみたいに使用します。
次回はもう一つの繰り返し「Do While」命令を紹介したいと思います。
どこまでくり返せばいいのかわからないけど繰り返したい時などに便利な命令です。今回の「For」命令と合わせてご覧ください。
広告
Copyright 2016 K.N/petitetech.com