dポイントプレゼントキャンペーン実施中!

excel VBA YESNO付きのメッセージボックスが2回出てしまいます。
VBA初心者です。上記の解決策を教えて頂きたいです。

ユーザーフォーム上のテキストボックスの入力値がexcelsheet上の表に無い場合に注意文が出るようにしました。
「"注意:テキストボックス1 リストに無い値です。この表示を無視しますか? >Yes or No」
Yes:そのまま処理が進む
No:処理停止
としたい感じです。

↓コードを書いたのですが、YesやNoボタンを1回押してももう1回メッセージボックスが出てしまい、2回ボタンを押さなければならない状態です。
----------------------------------------
Dim keyword As String
keyword = TextBox1
Dim Result As Long
Result = MsgBox("注意:テキストボックス1" & vbCrLf & "リストに無い値です" & vbCrLf & "この表示を無視しますか?", vbYesNo + vbExclamation)

If WorksheetFunction.CountIf(Worksheets("test").UsedRange, keyword) = 0 Then
MsgBox "注意:テキストボックス1" & vbCrLf & "リストに無い値です" & vbCrLf & "この表示を無視しますか?", vbYesNo + vbExclamation

If Result = vbNo Then
Exit Sub
End If

End If
---------------------------------------
上記どこが悪いでしょうか。

教えて頂けますと有り難いです。
何卒よろしくお願い申し上げます。

A 回答 (1件)

そりゃMsgBoxを2回呼んでるからです。


 試しに、下の方のMsgBoxの文字列の「注意」を「ごちゅうい」にでも変えてみれば、同じメッセージが2回出ているのではない、ということがわかるでしょう。
 さて、上の方のMsgBoxは、"リストに無い値"であるかどうかとは関係なく常にメッセージを出すから、全く余計です。一方、下の方のMsgBoxは"リストに無い値"である場合にだけメッセージを出すけれども、Resultに値を返さないんでダメ。
 というわけで、下の方の"MsgBox"以下をみんな削除して、そこに、上の方のMsgBoxの一行を丸々移動すればいいんです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2021/10/20 10:13

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

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


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