教えて!gooにおける不適切な投稿への対応について

VBメッセージボックスの「はい」「いいえ」などのボタンを、自分で指定したボタン名に変更できないでしょうか?

やりたいことは、「言語を選択してください」という質問メッセージを表示して、これから行うアクションを、例えば、「日本語」「English」などで表示したいです。

イメージとしては、
language = MsgBox("言語を選択してください","日本語""English")

If language = "日本語" Then
日本語処理
ElseIf language = "English" Then
英語処理
End If

といった感じに処理を行いたいですが、メッセージボックスのボタンの文言変更は無理でしょうか?

ちなみに、自分の環境は、OS:XP、VB6SP6です。

gooドクター

A 回答 (4件)

APIを使う場合の話題のようです。


普通にはできない。
下記を見つけました。エクセルVBAでなくて、VBで使えるかどうか(たぶんダメ)判りませんが、使用経験もありませんが参考に。
http://www.h3.dion.ne.jp/~sakatsu/ktMsgBox_Synta …
エクセルで日付についてはkt関数(もちろん別物)は有名です。
    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。

参考URLの内容を拝見いたしましたが、VBでやると引数が多すぎるのでダメといわれてしまいました。
これを参考にイジってみようとは思いますが、多分無理っぽいですね。。。

お礼日時:2005/09/05 14:34

ボタンの表示を変えるのは難しいと思います。


そのかわりに表現を変えてみたらいかがでしょう?

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
    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。

つまり、メッセージ内容を「はい」「いいえ」で答えられるように変更すれば?ということですよね?
その案も考えてましたが、やはりボタン名を変更した方が使い側からすると扱いやすいと思い、質問させていただいていました。

お礼日時:2005/09/05 14:31

メッセージボックスではなくて、ユーザFORMを作るのはNGでしょうか?

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

ご回答ありがとうございます。

FORMから作成でもNGではありませんが、APIなどで簡単にボタン名などを変更できると、ソースもシンプルに組めるかと思い、質問いたしました。

お礼日時:2005/09/05 14:28

基本的には出来ません。


もしかしたらAPIでも使えばできるかもしれませんが、そこまでして無理に実現させるのはあまりお勧めしません。
それならばメッセージボックス風の画面を独自に作って、自由にカスタマイズできるようにしたほうがよっぽどいいと思います。
クラス化すれば使い勝手も悪くはないでしょう。
    • good
    • 2
この回答へのお礼

ご回答ありがとうございます。

確かにメッセージボックスをカスタムして使用したい場合が多々あるので、クラス化すればよさそうですね。
ですが問題があり、私は.NETなどやったことが無いので、オブジェクト指向能力がありません(^^;

お礼日時:2005/09/05 14:26

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

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

gooドクター

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

人気Q&Aランキング