えー、お待たせしました(笑)
一部中身を見てしまったイケナイ子もいたみたいですが、
解説します(笑)
VBSファイルの中身はこうなってました。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Dim Answer
Do While Answer <> vbYes
Answer = MsgBox("あなたは福田総理が好きですか?", vbYesNo, "しつもん")
If Answer = vbYes Then
MsgBox "ふ〜ん、好きなんだぁヾ(・ε・。)", , "しつもん"
Else
MsgBox "え〜、ウソだぁ〜。。", , "しつもん"
End If
Loop
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
まぁ、今回も難しい事はしてませんが、
Mac版と同じだとつまらなかったので、
ループ文を使用しました。
まず、Answerを変数定義します。
そして、ループ文に入りダイアログボックスを表示させます。
MsgBox関数ですが、「MsgBox 表示させる文字列, ボタンの種類, タイトル」
となってます。
Apple Scriptと違うのは、ボタンの種類が始めから決まっていることですかね。
今回はユーザーに「はい、いいえ」を選択させたかったので「vbYesNo」を使ってますが、
「vbOKCancel」、「vbYesNoCancel」等色々あります。
そして、戻り値としてvbYesなのかvbNoなのか、ユーザーの選んだボタンの値を変数Answerに返します。
次に、if文に掛けます。
もしユーザーの答えがYesの場合、文字列「ふ〜ん、好きなんだぁヾ(・ε・。)」を表示させます。
それ以外(答えがNo)の場合、文字列「え〜、ウソだぁ〜。。」を表示させます。
さて、ここでYesのボタンを押した場合とNoを押した場合と比較して、
プログラムの動きが大きく変わってきます。
結論から言えば、ご存知の通りNoを押す限り永久ループにはまります(笑)
ということで、「Do While 〜 Loop」の説明です。
Do While 〜 Loopは、「条件を満たしている間」ループし続けます。
今回の場合は条件が、「Answer <> vbYes」となっており、
演算子が<>となっていることから、
「変数AnswerがvbYesと等しくない」となってます。
変数AnswerがvbYesと等しくない限りループをし続けます。
言い換えると、vbNoを選び続ける限り、ループします(笑)
vbYesを選んだ場合、等しくなってしまうので、
今回の条件は満たせないことになります。よってループから抜けます。
また、仲間のループ文に「Do Until 〜 Loop」があります。
こちらは反対に、「条件を満たせるまで」繰り返します。
いつもDo Whileを使う事が多いので今回もDo Whileで書いてしまいましたが、
今回のループ文は、
Do Until Answer = vbYes
色々と実行文
Loop
とも書ける訳です。
この場合、条件が「Answer = vbYes」となっており、
「変数AnswerがvbYesと等しい」となってます。
読んで字の如くUntil(〜まで)ですので、満たせるまで(等しくなるまで)ループし続けます。
よって変数AnswerがvbYesにならない限りループするので、
Noのボタンを押す限りは永久ループです(笑)
福田総理を好きと言わざる負えないのです(笑)
完璧な嫌がらせです(笑)
これらのDo While & Untilですが、
よくこんな形で使ったりします。
Do While i < 10
実行文
i = i + 1
Loop
これを応用して、力技も繰り出せます(笑)
でもそこまで来ると、
理解するのにある程度頭を使わないといけませんが…。。
今回はボタンの値を条件にしてループさせましたが、
多分、数字の方がわかり易い気もしますので、
上記の説明が分からなかった場合、
簡単なループ文を作りましたのでそちらを実行したり、
中身を見たりして理解してみて下さい。
それでも分からなくて興味があれば、メールなり電話なり下さい(笑)
※予告なく削除する可能性もあります。
http://d.hatena.ne.jp/Shinez/files/DoWhile.zip?d=download
最後に、VBSの便利さ何ですが、なにより一々コンパイルしなくて良い事です。
(※厳密に言えばコンピュータはこれらの言語を理解出来る訳がないので、
結局はコンパイルして機械語にするんですが…。。)
テキストで手軽に作って、拡張子をVBSに変えちゃえば、出来上がり!
う〜ん、便利です(笑)
同じようなやり方に、コマンドプロンプトのバッチファイルがありますが、
バッチファイルはどうもコマンドに弱いと思うので、
VB系のコマンドが使えるのは大きいです。
因みに、VBSはVBの簡易版みたいな感じだと思います。
VBAもコンパイルは必要ないかもしれませんが、結局エクセル立ち上げるのが面倒です。
さほどでもない作業は、
Win + R → 即マクロ実行!やっぱこうしたいです(笑)
VBSとApple Script、どちらも手軽に作れて高機能で便利ですが、
それは何を意味するかというと、手軽にウイルスも作れる訳です。
ですので、これらのファイルには注意しましょう(笑)
世間はシェア的にWindowsなので、VBSの方が蔓延してると思いますが、
Appleがこのままシェアを伸ばせば、
あのスクリプトエディタは確実にウイルス生産ツールになると思います(笑)
注意が必要ですね。
- 作者: 五十嵐貴之
- 出版社/メーカー: ソシム
- 発売日: 2009/06/01
- メディア: 単行本
- 購入: 1人 クリック: 65回
- この商品を含むブログ (27件) を見る