広告
お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!
ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!
ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!
今回はもう一つの繰り返し命令「Do While(ドゥーフォワイル)」命令についてみていきましょう!
'11日目 プログラム1 Sub test() Dim suji As Integer suji = 1 Do While suji <= 10 Worksheets("sheet1").Cells(suji,1).Value = "おはよう!" suji = suji + 1 Loop End Sub
「おはよう」を10回表示するプログラムを「Do While」で書き換えてみました。
「Do While」命令の場合は
Do While 条件 繰り返したい命令 Loop
と最初に条件を決めるだけで「Do While ~ Loop」までの間を繰り返してくれます。
「For」命令の時にあった「初期化」と「進み方」は別の場所に書くという違いがあります。
でも書き方が違うだけでやってる事は一緒な気がしますよね!
「For」命令と「Do While」命令の使いどころの違いについては実際にいろいろなプログラムを組まないと最初はよくわからないと思います。
今は「こんな命令もあるんだ」ぐらいになんとなく流し読みしていってください。
いちようよく見かける「Do While」命令のカタチをいくつかご紹介します。
'11日目 プログラム2 Sub test() Dim suji As Integer suji = 0 Do While True If suji = 100 Then MsgBox "変数「suji」が「100」になりました!" End If If suji = 200 Then Exit Do End If suji = suji + 1 Loop MsgBox "変数「suji」が「200」になったので終了します!" End Sub
Do While True
何回繰り返ししたいかわからないけど、とりあえず繰り返ししたい時などに使われる方法です。
「If」命令の時に学んだ条件が「True」・・・合っている状態です。なのでずっとくり返す無限ループになります。
「Do While」の場合は「Exit Do」で繰り返しを途中で抜ける事ができます。
「Do While True」で無限ループ→条件が達成された時に「Exit Do」命令で脱出というやり方です。
'11日目 プログラム3 Sub test() Dim password As String Do While True Continue: password = InputBox("パスワードを入力してね!(正解 : aiueo)") If password = "aiueo" Then Exit Do Else Go To Continue End If Loop MsgBox "パスワードを受付ました!" End Sub
さきほどと同じく条件が達成されるまでの無限ループ系ですね!
パスワードを入力してもらってパスワードが合うまで無限ループします。
Go To
この「Go To」命令は自分で名前をつけた場所に強制的に移動してくれる命令になります。(名前の事をラベルと言います)
今回は
Continue:
この部分がラベルになりまして名前の後に「:」コロンを書きます。
自分でつける名前なので
Kurikaeshi:
みたいな感じで好きなもので大丈夫です。
そして「Go To Continue」のようにその名前を書けばそこまでジャンプしてくれます。
「Go To」はわかりやすくとても便利なので、ついついたくさん使ってしまいがちなのですが、プログラムの流れがわかりずらくなってしまうので使い過ぎには注意しましょう!
(プロの人たちはどうしてもって時しか使いません!)
広告
'11日目 プログラム4 Sub test() Dim flag As Boolean Dim count As Integer flag = True count = 0 Do While flag If count = 100 Then flag = False End If count = count + 1 Loop MsgBox "カウントが100になったのでフラグを切り替え終了します!" End Sub
今度はIf命令の時に学んだフラグの役目をする変数を用意して、「Do While」命令の条件に当てはめ切り替える事によって「Do While」命令を脱出しております。
最後に「Do While」命令の仲間である「Do~Loop While」命令をご紹介します。
これは「While 条件」の部分の条件が合っても、合わなくても必ず一度は中身の命令が実行されるという命令になります。
プログラムで確認してみましょう!
'11日目 プログラム5 Sub test() Dim suji As Integer suji = 100 Do MsgBox "必ず一回は実行されます!" Loop While suji < 50 End Sub
使い方は最初に
Do
だけ書いてお尻に
Loop While suji < 50
条件を書きます。最初に変数「suji」には「100」が入ったので条件が合わなくても最初の一回が実行されているのがわかりますね!
冒頭にも言いましたが「Do While」命令はいろいろなプログラムを組まないと「For」命令との違いやどこで使うのかイマイチわかりづらいと思います。
そのウチなんとなくわかってくると思いますので今は軽く心にとめておきましょう!
広告
Copyright 2016 K.N/petitetech.com