Idea to Code

アイデアをコードへ
独学でプログラミング関係にいろいろ手を出すサイト

hawk

VBScript

VBScriptで自己言及のパラドックス2015/06/12

Msgboxを応用して自己言及のパラドックスを体験できるものを作ってみた。


【実行イメージ】

はいをクリックすると下記のように

さらにOKを押すともう一度聞いてきます。

いいえやキャンセルを押した場合の動作は確認してみてください。

paradox.vbs
Dim rtn, msg:msg="いいえをクリックしますか?"

rtn = Msgbox(msg, vbYesNo or vbQuestion or vbSystemModal, "質問です。")

msg = "もう一度聞きます。" & vbCr & msg

Do Until rtn = vbCancel
  If rtn = vbYes Then Msgbox "いいえをクリックしますか?と聞きました。" & vbCr & _
    "あなたは「はい」と答えたのにいいえをクリックしませんでした。", _
    vbOKOnly or vbCritical or vbSystemModal, "Error"

  If rtn = vbNo Then Msgbox "いいえをクリックしますか?と聞きました。" & vbCr & _
    "あなたは「いいえ」と答えたのにいいえをクリックしました。", _
    vbOKOnly or vbCritical or vbSystemModal, "Error"
  
  rtn = Msgbox(msg, vbYesNoCancel or vbQuestion or vbSystemModal, "質問です。")
Loop

Msgbox "ループから脱出しました。", vbInformation or vbSystemModal