
お世話になっております。
エクセルマクロで処理を行うときに
メッセージ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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>rc = MsgBox("処理を続けますか?", vbYesNo + vbQuestion)
>If rc = vbYes Then
>MsgBox "処理を続けます", vbInformation
>Else
>MsgBox "処理を中止します", vbCritical
>End If
まあもっと言ってしまえば、一つ目のMSGBOXで問い合わせを行いボタンを押させたのに
更に2つ目3つ目のMSGBOXを出すのは邪魔くさい仕様で、利用者からは絶対に改善要求がでる
そんなんなら、そのif文では中止の条件か?だけ判断して中止なら処理を終了させて「中止しました」という表示にする
そうすれば処理を継続した側の最後に表示される『マクロが終了しました』というモノと対応が取れて
利用者には分かり易いだろうなぁ
No.1
- 回答日時:
> If rc = vbYes Then
> MsgBox "処理を続けます", vbInformation
> Else
> MsgBox "処理を中止します", vbCritical
> End If
メッセージを変えているだけで処理が中止されてませんが?
メッセージの後に処理を中止する処理を入れてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel(VBA)シート上のコマンド...
-
メッセージボックスのボタン名変更
-
PostMessageの連続送信
-
VBA kernel32 の意味
-
エクセルVBAでクリップボード内...
-
c#でボタンのアクションが終わ...
-
VBSの処理中一旦処理を止めて再...
-
フォルダ指定
-
【C#】 あるイベントから別イ...
-
VB Loopを一時停止し再開あるい...
-
VBA、UserFormを前面に出力して...
-
SDI形式での直接文字表示の方法...
-
SendMessage中のメッセージ・ル...
-
Excel VBA 自動的に閉じるMsgBox
-
「キャンセル」ボタン付きの処...
-
DirectX環境下での方向キー同時...
-
access 確認メッセージのはい/...
-
Excelのワークシートに行を挿入...
-
Excel VBA で処理中断(DoEvents...
-
VBスクリプトで「お待ち下さい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
VBA kernel32 の意味
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
VBA、UserFormを前面に出力して...
-
【C#】 あるイベントから別イ...
-
Excel VBA で処理中断(DoEvents...
-
PostMessageの連続送信
-
ボタンが押された事を検知する...
-
Application.ScreenUpdating=Fa...
-
エクセルVBAでクリップボード内...
-
VB Loopを一時停止し再開あるい...
-
起動後直に実行するコードはど...
-
DirectX環境下での方向キー同時...
-
Excel VBA 実行中に一瞬フリー...
-
OSシャットダウン時の常駐アプ...
-
マウスのクリックを無視したい
-
エクセルVBAで
-
メッセージボックスの表示につ...
おすすめ情報