アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になっております。

エクセルマクロで処理を行うときに

メッセージ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で行なっております。

ご教授の程、よろしくお願いいたします。

A 回答 (2件)

>rc = MsgBox("処理を続けますか?", vbYesNo + vbQuestion)


>If rc = vbYes Then
>MsgBox "処理を続けます", vbInformation
>Else
>MsgBox "処理を中止します", vbCritical
>End If

まあもっと言ってしまえば、一つ目のMSGBOXで問い合わせを行いボタンを押させたのに

更に2つ目3つ目のMSGBOXを出すのは邪魔くさい仕様で、利用者からは絶対に改善要求がでる

そんなんなら、そのif文では中止の条件か?だけ判断して中止なら処理を終了させて「中止しました」という表示にする

そうすれば処理を継続した側の最後に表示される『マクロが終了しました』というモノと対応が取れて
利用者には分かり易いだろうなぁ
    • good
    • 0

> If rc = vbYes Then


> MsgBox "処理を続けます", vbInformation
> Else
> MsgBox "処理を中止します", vbCritical
> End If

メッセージを変えているだけで処理が中止されてませんが?
メッセージの後に処理を中止する処理を入れてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!