基本的な条件処理

はい、第二章です。今まではとりあえず、上から下に順番に動くプログラムでしたが、バッチ処理的な単純な連続処理でも無い限り、そんな簡単な構造にはなりません。 この章では条件によって動作を変えるための基本を超簡単に説明します。

とは、言っても基本的には「条件分岐」と「繰り返し」しかありません。

IF

第一章のサンプルではあなたがエイドリアンかどうかを判断せずに叫ばれてしまっていますね。迷惑な話です。で、これ。

Dim result    '結果保持用変数
 
'エイドリアンかどうかの確認
result =  MsgBox("エ、エイジョリアン?",vbYesNo)
 
If result = vbYes Then
  MsgBox "エイジョリアーーン!!",vbOK,"貞夫より"
End If

前章にて関数はスペースを空けて引数を設定すると説明しましたが、ウソです。 いや、半分ウソです。命令(関数)には実行結果を返すものと返さないものがあり、 返す場合は引数をカッコで括って結果を変数にて受け取ります。 この場合、変数resultに結果が返ることになります。結果を返す関数でも実行に意味があり、結果はどうでもいいときは結果を返さない関数と同様にスペースの後に引数を指定することによって結果の取得を省略することもできます。

vbYesNoはメッセージボックスに「はい」「いいえ」ボタンを出すように指示する定数です。結果はvbYes or vbNo(これも定数)で帰ってきます。

で、IFの部分ですが、この構文で条件判断してます。何となく分かりますよね?

If (条件式) Then
	条件がTrueの時の処理
Else
	条件がFalseの時の処理
End If

と、言う使い方です。先ほどの処理ではElseは使って無かったですね。Elseが無い場合は条件がFalseの時は何も処理されずにEnd If以降の行に進みます。Elseをつけるとこんな感じになります。

Dim result    '結果保持用変数
 
'エイドリアンかどうかの確認
result =  MsgBox("エ、エイジョリアン?",vbYesNo)
 
If result = vbYes Then
  MsgBox "エイジョリアーーン!!",vbOK,"貞夫より"
Else
  MsgBox "じゃあ、あだ名『げろしゃぶ』",vbExlcamation,"貞夫より"
End If

二択。

vbExclamationは警告マークを出す定数です。IF。簡単でしょ?

突然マメ知識
WSHでは大文字小文字は区別されません。MsgBoxもMSGBOXも同じです。 変数名や定数名も同様です。

FOR

次は繰り返し処理です。 例えばこんな感じ。

Dim strBuff    'メッセージ保持用
Dim i            'ループ用
 
For i = 0 to 4
    strBuff = strBuff & "さいたま!"
Next
 
MsgBox strBuff

「iが0から始まって5になるまで繰り返して」 と言う意味になります。 実行すると、

さいたま!さいたま!さいたま!さいたま!さいたま!

と、表示されます。0〜4までなので合計で5回です。

DO

FORと同じ処理をこう書くこともできます。

Dim strBuff    'メッセージ保持用
Dim i            'ループ用
 
Do While i < 5
    i = i + 1
    strBuff = strBuff & "さいたま!"
Next
 
MsgBox strBuff

結果は全く同じです。なんとなーくわかりますか?要するに、

「iが5より小さい間永遠に繰り返せ」

と、言う意味です。これらは場合によって使い分けます。 その辺は、今後の章で説明していきます。 実は、繰り返し処理はこれ以外にも構文があるのですが、 これも、実際にそういった処理が出てきたときに紹介します。

こんだけです。これでもうWSHの基礎は完了です。 後は、実践で色々とやっていきましょうぜ。

この記事は訳に立ちましたか?

選択肢 投票
はい 38  
いいえ 14  
  • Do ~ ×Next ◯Loop -- k? 2011-01-31 (月) 10:44:12

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White