- 締切済み
メッセージボックスのボタン名変更
VBメッセージボックスの「はい」「いいえ」などのボタンを、自分で指定したボタン名に変更できないでしょうか? やりたいことは、「言語を選択してください」という質問メッセージを表示して、これから行うアクションを、例えば、「日本語」「English」などで表示したいです。 イメージとしては、 language = MsgBox("言語を選択してください","日本語""English") If language = "日本語" Then 日本語処理 ElseIf language = "English" Then 英語処理 End If といった感じに処理を行いたいですが、メッセージボックスのボタンの文言変更は無理でしょうか? ちなみに、自分の環境は、OS:XP、VB6SP6です。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
APIを使う場合の話題のようです。 普通にはできない。 下記を見つけました。エクセルVBAでなくて、VBで使えるかどうか(たぶんダメ)判りませんが、使用経験もありませんが参考に。 http://www.h3.dion.ne.jp/~sakatsu/ktMsgBox_Syntax.htm#ktMsgBox5 エクセルで日付についてはkt関数(もちろん別物)は有名です。
- merlionXX
- ベストアンサー率48% (1930/4007)
ボタンの表示を変えるのは難しいと思います。 そのかわりに表現を変えてみたらいかがでしょう? Sub TEST() Language = MsgBox("言語を選択してください。" _ + Chr(&HD) + Chr(&HA) + "" _ + Chr(&HD) + Chr(&HA) + "日本語なら「はい」" _ + Chr(&HD) + Chr(&HA) + "英語なら「いいえ」", vbYesNo + vbQuestion, "言語確認") If Language = vbYes Then '日本語処理 Else '英語処理 End If End Sub
お礼
ご回答ありがとうございます。 つまり、メッセージ内容を「はい」「いいえ」で答えられるように変更すれば?ということですよね? その案も考えてましたが、やはりボタン名を変更した方が使い側からすると扱いやすいと思い、質問させていただいていました。
- nicnicnic
- ベストアンサー率47% (8/17)
メッセージボックスではなくて、ユーザFORMを作るのはNGでしょうか?
お礼
ご回答ありがとうございます。 FORMから作成でもNGではありませんが、APIなどで簡単にボタン名などを変更できると、ソースもシンプルに組めるかと思い、質問いたしました。
- ttyp03
- ベストアンサー率28% (277/960)
基本的には出来ません。 もしかしたらAPIでも使えばできるかもしれませんが、そこまでして無理に実現させるのはあまりお勧めしません。 それならばメッセージボックス風の画面を独自に作って、自由にカスタマイズできるようにしたほうがよっぽどいいと思います。 クラス化すれば使い勝手も悪くはないでしょう。
お礼
ご回答ありがとうございます。 確かにメッセージボックスをカスタムして使用したい場合が多々あるので、クラス化すればよさそうですね。 ですが問題があり、私は.NETなどやったことが無いので、オブジェクト指向能力がありません(^^;
お礼
ご回答ありがとうございます。 参考URLの内容を拝見いたしましたが、VBでやると引数が多すぎるのでダメといわれてしまいました。 これを参考にイジってみようとは思いますが、多分無理っぽいですね。。。