重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

下記のマクロを実行すると
メッセージボックスが表示され、「はい(Y)」をクリックすると
マクロ「Call 都市計画区域内」が実行されます。
このマクロを
画像のようにメッセージボックスの表示を
「区域内」「区域外」「キャンセル」として
「区域内」をクリックするとマクロ「Call 都市計画区域内」が実行
「区域外」をクリックするとマクロ「Call 都市計画区域外」が実行
「キャンセル」をクリックするとマクロ実行されないように変更する方法を教えてください。
現状のマクロ
Sub 都市計画()

alert = MsgBox("都市計画区域", vbYesNo + vbQuestion, "都市計画確認")
If alert <> vbYes Then
Exit Sub
End If

Call 都市計画区域内


End Sub

以上となります。
よろしくお願いいたします。

「Excelのマクロについて教えてください」の質問画像

A 回答 (2件)

3つの処理があるButtonsは vbYesNoCancel になります。


この場合「はい(Y)」「いいえ(N)」「キャンセル」と表示されますが、これを変えることはMsgbox関数の使用上できません。

かと言ってフォームで作るのも面倒なので、メッセージを工夫して「区域内なら”はい"を区域外なら”いいえ”、キャンセルの場合はキャンセルを押してください」というようなものとしてはいかがでしょうか。

あとは戻り値をSelect ~CaseでYesとNoの場合の処理を設定するとよいかなと思います。(それ以外は排他的に無処理)

一応サンプル掲載します。

Sub 都市計画()

alert = MsgBox("区域内なら「はい」を区域外なら「いいえ」、キャンセルの場合は「キャンセル」を押してください", vbYesNoCancel , "都市計画確認")

Select Case alert

Case vbYes
Call 都市計画区域内

Case vbNo
Call 都市計画区域外
End Select

End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
色々と考えて頂きまして、感謝いたします。
早速設定させていただきます。

お礼日時:2024/12/04 12:03

msgboxにそんな機能はありませんので、ユーザーフォームを作成しその中のボタンにcall~を入れてください。

    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考にさせて頂きます。

お礼日時:2024/12/04 12:03

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A