お世話になっております。
エクセルマクロで処理を行うときに
メッセージ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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
エクセルVBAでクリップボード内...
-
Excel VBA で処理中断(DoEvents...
-
VBSで応答不要のメッセージボッ...
-
ACCESS側からEXCELの書式を設定...
-
VBA kernel32 の意味
-
スロットゲームのプログラミング
-
VBA メッセージボックスを自動...
-
vb.netでバッチ処理
-
メッセージボックスのボタン名変更
-
Excel VBA 実行中に一瞬フリー...
-
Application.ScreenUpdating=Fa...
-
VB6 コマンドボタン クリック...
-
InvalidateRectがうまくいかない
-
VC++6.0 CDateTimeCtrl の暴走...
-
VB.NETのUsingキーワードの使い方
-
Excelのワークシートに行を挿入...
-
Excel VBA 自動的に閉じるMsgBox
-
スケジューリング方式
-
処理をとめるキャンセルボタン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
VBA kernel32 の意味
-
エクセルVBAでクリップボード内...
-
【C#】 あるイベントから別イ...
-
Excel VBA で処理中断(DoEvents...
-
VBA メッセージボックスを自動...
-
Application.ScreenUpdating=Fa...
-
Excel VBA 自動的に閉じるMsgBox
-
ASP.NETでのメッセージ画面を出...
-
メッセージBOXの「はい」「いい...
-
「キャンセル」ボタン付きの処...
-
B列に特定の文字列が入っている...
-
シャットダウン時のExcel強制終...
-
ASP VBScriptでスクリプト実行...
-
起動後直に実行するコードはど...
-
MFCのメニューバーのイベント取得
-
アクセスでのキー送信について
おすすめ情報