PRIMG0001
 毎週金曜日、プログラミングのちょっとした講座を記しています。
 ここでは、小学校から「プログラミング」が必須項目になってしまったため、お父さん・お母さん・おじいちゃん・おねえちゃんが子供に「プログラミング」教えることができるように、ここでこっそりと勉強してしまおうという企画です。
 今週は「繰り返し処理」の続きとなります。
まずはOKボタン押したときに「Hallo World!」を表示させるプログラムを作ってみましょう。

 OKボタンを押すプログラムの部分は次の通りです。


  Call MsgBox(”OKを押してください。”, vbOKOnly + vbCritical, "テストです。") 

この部分の使い方は詳しく次週説明しますので、今週はとりあえずこれをコピペしてください。
これを使ってOKボタン押したときに「Hallo World!」を表示させるプログラムは次の通りです。

Sub 表示1()

 dim moi01 as string
 moji01 = "Hallo word!"
 Call MsgBox(”OKを押してください。”, vbOKOnly + vbCritical, "テストです。") 
 MsgBox moji01

end sub

このようになりますね。これを使って今回は繰り返し処理を説明します。まずは指定回数だけ表示させる繰り返し処理を説明します。指定回数だけ表示させるには「For~next」文となります。
この命令の使い方は

  For 指定される最初の回数の条件 to 終わりの回数
    処理
       next

となります。例えば 「hensu01」という変数が1から5までの時に処理する場合は

For hensu01 = 1 to 5
  処理
next

となります。また、「hensu01」という変数が3から5までの時に処理する場合は

For hensu01 > 2 to 5
  処理
next

となります。これを踏まえて、一番最初に作ったをプログラムを使って、OKボタン5回押した後に「Hallo World!」を表示させてみましょう。

 OKボタンを押す命令はForの中に入れて繰り返しさせなければなりません。また、5回押した後に「Hallo World!」を表示させるのはFor文から抜け出したところに置かなければなりません。

 ということで、次のようになります。カウントの変数は「hensu01」を使用します。

Sub 表示1()

 dim moi01 as string
 dim hensu01 as integer

 moji01 = "Hallo word!"
    hensu01 = 1

   for hensu01 = 1 to 5
  Call MsgBox(”OKを押してください。”, vbOKOnly + vbCritical, "テストです。") 
  hensu01 = hensu01 +1 
 next

 MsgBox moji01

end sub


となります。

次に「条件が成立するまで繰り返し処理」を説明します。条件が成立するまで繰り返し処理は「Do until」です。
 この命令の使い方は
 
Do until  繰り返し処理が終わるための成立する条件
    処理
Loop

となります。

 例えば、「hensu01」という変数が5までの時に処理する場合は

 Do until hensu01 > 5
 処理
 loop

となります。つまり、「Do until 」の場合は「繰り返し処理から抜ける条件」となります。
 一番最初の講座から順番に読んでいる人は「おやっ?」と思うかもしれません。そうです。前回似た命令を勉強しました。前回は「Do while」を勉強しました。この「Do while」は「条件が成立している間」となります。「Do while」で「hensu01」という変数が5までの時に処理する場合は

 Do while hensu01 < 6
 処理
 loop

それに対し、先ほどの「Do until 」では

 Do until hensu01 > 5
 処理
 loop

 つまり、同じ処理でも「Do while」と「Do until 」では変数の使い方が全く正反対になります。
 繰り返し処理の説明をあえて2週に分けたのはこのためで、一気に覚えると頭が混乱すると思い、週を分けて説明しております。

 それでは、「For next」の時と同じように「Do until 」を使ってOKボン5回押した後に「Hallo World!」を表示させてみましょう。
Sub 表示1()

 dim moi01 as string
 dim hensu01 as integer

 moji01 = "Hallo word!"
    hensu01 = 1

   do until hensu01 > 5
  Call MsgBox(”OKを押してください。”, vbOKOnly + vbCritical, "テストです。") 
  hensu01 = hensu01 +1 
 next

 MsgBox moji01

end sub

となります。

このプログラムで、「Do until」の代わりに「Do While」文を使用すると、

Sub 表示1()

 dim moi01 as string
 dim hensu01 as integer

 moji01 = "Hallo word!"
    hensu01 = 1

   do while hensu01 < 6
  Call MsgBox(”OKを押してください。”, vbOKOnly + vbCritical, "テストです。") 
  hensu01 = hensu01 +1 
 next

 MsgBox moji01

end sub

となります。
 なぜ、「Do while」と「Do until 」があるのか、使い分けはどうするのか?ということになりますが、「Do while」はループ内実行後に条件式の判定を実行するため、最低は一回はループ内の処理が実行されます。それに対し、「Do until 」はループを実行する前に条件の判定を行うところが大きな違いになります。
例えば
 貯金箱に500円たまるまで毎日10円ずつ貯金すると仮定しましょう。
  用意した貯金箱が空の状態からスタートした場合、一番最初に10円を入れなければならないので
「Do while」
それに対し
 すでにある程度お金が入っている貯金箱を用意して貯金する場合、用意した貯金箱がすでに500円以上入っているかもしれないので「Do until」
となります。
 このように、繰り返し処理で使用する変数の初期の状態によって、その繰り返し処理が必要かどうかで「Do while」と「Do until 」を使い分けます。

 ということで、2週にわたって繰り返し処理を説明しました。次週は入力やOKボタンなどの命令を説明します。