
VBメッセージボックスの「はい」「いいえ」などのボタンを、自分で指定したボタン名に変更できないでしょうか?
やりたいことは、「言語を選択してください」という質問メッセージを表示して、これから行うアクションを、例えば、「日本語」「English」などで表示したいです。
イメージとしては、
language = MsgBox("言語を選択してください","日本語""English")
If language = "日本語" Then
日本語処理
ElseIf language = "English" Then
英語処理
End If
といった感じに処理を行いたいですが、メッセージボックスのボタンの文言変更は無理でしょうか?
ちなみに、自分の環境は、OS:XP、VB6SP6です。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
APIを使う場合の話題のようです。
普通にはできない。
下記を見つけました。エクセルVBAでなくて、VBで使えるかどうか(たぶんダメ)判りませんが、使用経験もありませんが参考に。
http://www.h3.dion.ne.jp/~sakatsu/ktMsgBox_Synta …
エクセルで日付についてはkt関数(もちろん別物)は有名です。
ご回答ありがとうございます。
参考URLの内容を拝見いたしましたが、VBでやると引数が多すぎるのでダメといわれてしまいました。
これを参考にイジってみようとは思いますが、多分無理っぽいですね。。。
No.3
- 回答日時:
ボタンの表示を変えるのは難しいと思います。
そのかわりに表現を変えてみたらいかがでしょう?
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
ご回答ありがとうございます。
つまり、メッセージ内容を「はい」「いいえ」で答えられるように変更すれば?ということですよね?
その案も考えてましたが、やはりボタン名を変更した方が使い側からすると扱いやすいと思い、質問させていただいていました。
No.1
- 回答日時:
基本的には出来ません。
もしかしたらAPIでも使えばできるかもしれませんが、そこまでして無理に実現させるのはあまりお勧めしません。
それならばメッセージボックス風の画面を独自に作って、自由にカスタマイズできるようにしたほうがよっぽどいいと思います。
クラス化すれば使い勝手も悪くはないでしょう。
ご回答ありがとうございます。
確かにメッセージボックスをカスタムして使用したい場合が多々あるので、クラス化すればよさそうですね。
ですが問題があり、私は.NETなどやったことが無いので、オブジェクト指向能力がありません(^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
メッセージボックスの選択ボタンのテキストを変更したい
Visual Basic(VBA)
-
メッセージボックスのボタン文字を英語表示にしたい
Visual Basic(VBA)
-
エクセルVBAで、MsgBox やInputBox は、画面の中央以外に表示させたい。
Excel(エクセル)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
フォントの大きさ
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
MsgBoxについて
Visual Basic(VBA)
-
11
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
12
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
13
文字数に合わせて、コントロールの幅を設定する方法
Visual Basic(VBA)
-
14
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
15
VBAでInputBoxの再入力をさせるには?
Visual Basic(VBA)
-
16
UserForm1.Showでエラーになります。
工学
-
17
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
18
ユーザーフォーム、コンボボックスで重複せず選択リストを表示させるには
Excel(エクセル)
-
19
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
20
UserForm
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
VBSで応答不要のメッセージボッ...
-
VBA kernel32 の意味
-
Application.ScreenUpdating=Fa...
-
アクセスでのキー送信について
-
Excel VBA で処理中断(DoEvents...
-
VBA、UserFormを前面に出力して...
-
マウスのクリックを無視したい
-
PostMessageの連続送信
-
beforecloseの中からの抜け出し方
-
EXCEL VBA「Application.Displa...
-
VB.NET開発(イベントプロシー...
-
MFCのワーカースレッドとUIスレ...
-
VCでウエイトをミリ秒でかけ...
-
手動かプログラムでの起動かの判断
-
シャットダウン時のExcel強制終...
-
エクセルVBA 組み込みダイアロ...
-
VB6でフォームをリロードしたい
-
VBスクリプトで「お待ち下さい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
VBA kernel32 の意味
-
メッセージボックスのボタン名変更
-
ACCESS側からEXCELの書式を設定...
-
VBSで応答不要のメッセージボッ...
-
VBA、UserFormを前面に出力して...
-
【C#】 あるイベントから別イ...
-
Excel VBA で処理中断(DoEvents...
-
PostMessageの連続送信
-
ボタンが押された事を検知する...
-
Application.ScreenUpdating=Fa...
-
エクセルVBAでクリップボード内...
-
VB Loopを一時停止し再開あるい...
-
起動後直に実行するコードはど...
-
DirectX環境下での方向キー同時...
-
Excel VBA 実行中に一瞬フリー...
-
OSシャットダウン時の常駐アプ...
-
マウスのクリックを無視したい
-
エクセルVBAで
-
メッセージボックスの表示につ...
おすすめ情報