
お世話になっております。
エクセルマクロで処理を行うときに
メッセージ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ランキング
-
VC++ のマウス入力
-
パソコン処理の分担について。
-
ニーモニックキャラクタとは
-
エクセルVBAで
-
メッセージボックスの表示につ...
-
Excel2000で閉じたフ...
-
エクセルVBAの質問ですがここで...
-
マウスの入力を待つには?
-
アクセスVBAでVBYESNOボタンに...
-
VBSの処理中一旦処理を止めて再...
-
VBA、UserFormを前面に出力して...
-
ダイアログ作成での質問
-
VBスクリプトで「お待ち下さい...
-
MFCダイアログの終了判定
-
Delphi6 ループ中にキー入力
-
チェックボックスの周囲の色が
-
”お待ち下さい”が表示できない。
-
Visual C++においての質問
-
B列に特定の文字列が入っている...
-
探しています~プログレスバー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
ACCESS側からEXCELの書式を設定...
-
メッセージボックスのボタン名変更
-
VBSで応答不要のメッセージボッ...
-
VBA kernel32 の意味
-
Excel VBA で処理中断(DoEvents...
-
VBA、UserFormを前面に出力して...
-
Application.ScreenUpdating=Fa...
-
MFCのワーカースレッドとUIスレ...
-
ASP.NETでのメッセージ画面を出...
-
「キャンセル」ボタン付きの処...
-
シャットダウン時のExcel強制終...
-
【C#】 あるイベントから別イ...
-
ボタンが押された事を検知する...
-
PostMessageの連続送信
-
VBA メッセージボックスを自動...
-
エクセルVBAでクリップボード内...
-
VCでウエイトをミリ秒でかけ...
-
ループを使わずに、特定時間に...
-
VB6 コマンドボタン クリック...
おすすめ情報