• 締切済み

メッセージBOXの「はい」「いいえ」の処理について

お世話になっております。 エクセルマクロで処理を行うときに メッセージBOXにて「はい」か「いいえ」のボタンを押して 実行か中断の処理を行なっていたいのですが、 「いいえ」を押しても処理が実行されてしまいます。 以下で作成しております。 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub IP呼び出し() Dim keizoku As Integer Dim rc As Long rc = MsgBox("処理を続けますか?", vbYesNo + vbQuestion) If rc = vbYes Then MsgBox "処理を続けます", vbInformation Else MsgBox "処理を中止します", vbCritical End If Dim Wsh, wExec, cmd, rRes, i, j Dim sBuf() As String Set Wsh = CreateObject("WScript.Shell") For i = 2 To Cells(Rows.Count, 3).End(xlUp).Row Set wExec = Wsh.exec("%ComSpec% /c nslookup " & Cells(i, 3)) Do While wExec.Status = 0 DoEvents Loop Sleep 1 rRes = wExec.StdOut.ReadAll 'MsgBox rRes sBuf = Split(rRes, vbCrLf) For j = 0 To UBound(sBuf) If Left(sBuf(j), 5) = "Name:" Or Left(sBuf(j), 3) = "名前:" Then Cells(i, 18) = Trim(Right(sBuf(j), Len(sBuf(j)) - 5)) End If Next j Next i MsgBox "ドメインを確認して下さい。", vbOKOnly, "マクロが終了しました" End Sub Excel2010で行なっております。 ご教授の程、よろしくお願いいたします。

みんなの回答

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.2

>rc = MsgBox("処理を続けますか?", vbYesNo + vbQuestion) >If rc = vbYes Then >MsgBox "処理を続けます", vbInformation >Else >MsgBox "処理を中止します", vbCritical >End If まあもっと言ってしまえば、一つ目のMSGBOXで問い合わせを行いボタンを押させたのに 更に2つ目3つ目のMSGBOXを出すのは邪魔くさい仕様で、利用者からは絶対に改善要求がでる そんなんなら、そのif文では中止の条件か?だけ判断して中止なら処理を終了させて「中止しました」という表示にする そうすれば処理を継続した側の最後に表示される『マクロが終了しました』というモノと対応が取れて 利用者には分かり易いだろうなぁ

noname#189141
noname#189141
回答No.1

> If rc = vbYes Then > MsgBox "処理を続けます", vbInformation > Else > MsgBox "処理を中止します", vbCritical > End If メッセージを変えているだけで処理が中止されてませんが? メッセージの後に処理を中止する処理を入れてください。

関連するQ&A