Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12942 / 13646 ツリー ←次へ | 前へ→

【7818】MsgBoxの標準ボタンをなくすには ミッキーラット 03/9/19(金) 0:41 質問
【7820】Re:MsgBoxの標準ボタンをなくすには Kein 03/9/19(金) 3:14 回答
【7821】Re:MsgBoxの標準ボタンをなくすには INA 03/9/19(金) 8:44 回答
【7841】Re:MsgBoxで標準ボタンをなくすには ミッキーラット 03/9/19(金) 20:26 お礼

【7818】MsgBoxの標準ボタンをなくすには
質問  ミッキーラット  - 03/9/19(金) 0:41 -

引用なし
パスワード
   Hi! こんにちわ。
エラーを下のようにメッセージボックスで表示しているのですが、
リターンキーを押すと標準のOKボタンが反応し、メッセージボックス
が消えてしまいます。

res = MsgBox("エラー", vbExclamation , "エラー")

OKボタンをマウスでクリックしない限り、応答しないように、OKボタンを
標準ボタンにしないようにできないでしょうか?

なぜ、そんなことが必要かと申し上げますと、バーコードで商品データ
を読み込む作業中に、作業者は画面から目を離しているときがあります。
エラーが表示されたときに、気づかずに、次のバーコードを読みますと
読み込みデータの最後のリターンコードにOKボタンが反応して、エラーが
気づかないことがあります。

そこで、マウスでOKボタンをクリックするまで、エラーを表示させて
おきたいと考えております。

良い方法がありましたら、お教えください。

【7820】Re:MsgBoxの標準ボタンをなくすには
回答  Kein  - 03/9/19(金) 3:14 -

引用なし
パスワード
   OnKeyでEnterを潰しておくなどもテストしてみましたが、うまくいきませんね・・。
第2ボタンをデフォルトにするなんてのは、簡単なんですけどね。
仕方がないから、ちょっと大げさなコードになりますが、テキストボックスで代替
してみました。Addの引数は、Left, Top, Width, Height ですから、適当に
位置やサイズを調節してください。

Sub MyText()
  With ActiveSheet.TextBoxes.Add(100, 100, 110, 30)
   .Text = "エラー発生 !!" & _
   vbLf & "クリックで消えます"
   .Font.ColorIndex = 3
   .AutoSize = True
   .Enabled = False
   .Shadow = True
   .OnAction = "Del_Text"
  End With
End Sub

Sub Del_Text()
  ActiveSheet.TextBoxes(Application.Caller).Delete
End Sub

【7821】Re:MsgBoxの標準ボタンをなくすには
回答  INA  - 03/9/19(金) 8:44 -

引用なし
パスワード
   ユーザーフォームにコマンドボタンを配置して、
TabStopプロパティをFalseにしてはいかがでしょうか?

【7841】Re:MsgBoxで標準ボタンをなくすには
お礼  ミッキーラット  - 03/9/19(金) 20:26 -

引用なし
パスワード
   ▼INA さん:
>ユーザーフォームにコマンドボタンを配置して、
>TabStopプロパティをFalseにしてはいかがでしょうか?

ユーザーフォームを作って、コマンドボタンの
プロパティで、

TabStop = False
Default = False

等にすれば、できそうですが、エラーメッセージのためだけに
フォームを作ることもないだろうと思って、なんとかMsgBoxを
使ってやりたいと思っていたのですが...
やっぱり、無理のようですね。

考えてくれて、どうもありがとうございました。

12942 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free