• ベストアンサー

VBS 教えて!2

http://oshiete1.goo.ne.jp/qa5372858.html で質問したものです。 「loopにDoがありません」というエラーが発生するのはなぜですか? VBSだとgotoが使えないので、Do~loop命令をつかったのですが、いまいち使いこなせません。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Do total = Inputbox("動画の再生時間を入力してください","ビットレート自動計算機") music = Inputbox("音声ビットレートを入力してください","ビットレート自動計算機") x = 335544/total - music - 15 IF not(x>0) then Msgbox "入力した情報は不正です" elseIF x>656 then Msgbox "推奨映像ビットレートは656kbpsです。" else Msgbox "推奨映像ビットレートは" & x & "kbpsです。" end IF Msgbox "続けて計算しますか?",vbyesno IF vbyes then loop elseIF vbno then Msgbox"終了します" end IF ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

質問者が選んだベストアンサー

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

IF vbyes then loop elseIF vbno then Msgbox"終了します" end IF ↓ If MsgBox("続けて計算しますか?", vbYesNo) = vbNo Then Exit Do End If Loop MsgBox "終了します" に変更してください。

その他の回答 (2)

回答No.3

#2です。 訂正です。 Do~LoopはWhile、Untilがなくても動くようですね。

参考URL:
http://msdn.microsoft.com/ja-jp/library/cc392445.aspx
回答No.2

Do~LoopはUntilもしくはWhileで条件判断を一緒に付けないとダメなようですね。 最後の5行がIF文がまたがって判定されているので、おかしな事になっていると思います。 一例ですが、最後の方を以下のように直してみてください。 ーーーーーーーーーーーーーーーーーーーーーーーー i_ret=Msgbox("続けて計算しますか?",vbYesNo) loop Until i_ret=vbYes Msgbox"終了します" ーーーーーーーーーーーーーーーーーーーーーーーー i_retにvbYesNoの戻り値が格納され(「はい」か「いいえ」) loop文でi_retがvbYes(「はい」の状態)ならDo~Loopを抜けて 終了するようになっています。

参考URL:
http://woodbook.kir.jp/program/wsh/box.html

関連するQ&A