• ベストアンサー

メッセージボックスのタイトル設定

メッセージボックスのタイトル設定についてです。 (使用言語はVB5.0です) 例えば、 Ret = msgbox("テスト", ,"title") と書くと、タイトル部にtitleと表示されます。 戻り値は省略しようと思い、 msgbox("テスト", ,"title") と書くとエラーが出てしまうのですが、何故でしょうか? MsgBox "テスト", Title:="title" と、明示すれば戻り値を省略できますが、上の書き方だと 何故うまくいかないのかちょっと気になっているので、 ご教授ください。

noname#32335
noname#32335

質問者が選んだベストアンサー

  • ベストアンサー
  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.2

> msgbox("テスト", ,"title") > と書くとエラーが出てしまうのですが、何故でしょうか? プロシージャ呼び出しは、 Call プロシージャ名(引数1,引数2,・・・) か、 プロシージャ名 引数1,引数2,・・・ のどちらかの形式です。 で、 > msgbox("テスト", ,"title") こう、書くと、「("テスト", ,"title")」全体が、引数1と看做されてしまい、 > Call msgbox( ("テスト", ,"title") ) と、解釈されてしまうからです。 ちなみの引数が1しかないとき、 例えば、 > msgbox("テスト") はエラーにはなりませんが、実際には、 > Call msgbox( ("テスト") ) こう、解釈されています。 MsgBoxの場合、ByVal型の引数なので問題ないですが、 例えば、 > Sub X(ByRef A) の様なプロシージャを > X(A) と呼び出すと、 > CAll X((A)) と看做され、 変数A自身がサブルーチンに渡されず、ByValの様な動作(プロシージャ内で変数を変更しても、呼び出し元に反映されない)になってしまい、 気づき難いトラブルの原因になりますので、注意が必要です。

noname#32335
質問者

お礼

大変よくわかりました。 ありがとうございました。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>と書くとエラーが出てしまうのですが、何故でしょうか? msgbox() となっているので、関数(戻り値がある=受け皿が必要)と判断されるからです。 表示だけなら、 MsgBox "てすと", , "title" として下さい。

noname#32335
質問者

お礼

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

関連するQ&A

  • メッセージボックスのボタン名変更

    VBメッセージボックスの「はい」「いいえ」などのボタンを、自分で指定したボタン名に変更できないでしょうか? やりたいことは、「言語を選択してください」という質問メッセージを表示して、これから行うアクションを、例えば、「日本語」「English」などで表示したいです。 イメージとしては、 language = MsgBox("言語を選択してください","日本語""English") If language = "日本語" Then 日本語処理 ElseIf language = "English" Then 英語処理 End If といった感じに処理を行いたいですが、メッセージボックスのボタンの文言変更は無理でしょうか? ちなみに、自分の環境は、OS:XP、VB6SP6です。

  • メッセージボックスについて

    メッセージボックスが消えなくて困っています。 以下のように記述して、TextBox1に文字を4文字入力しないとメッセージボックスが現れますが、OKを押してもメッセージボックスがまた現れてしまい、s1_strの入力側のウィンドウに戻ることができません。 どうしたらいいでしょうか? Do s1_str = TextBox1.Text If (Len(s1_str) = 4 ) = False Then MsgBox("4文字入力してください",MsgBoxStyle.OKOnly, "エラー") End If Loop While (Len(s1_str) = 4 ) = False

  • メッセージボックス関数の「戻り値」って?(Access2000)

    Access初心者です。 今、自分で勉強しているのですが、メッセージボックス関数の「戻り値」がよくわかりません。 引数の<msg>,<type>,<title>はそれぞれ理解ができたのですが、 戻り値の内容(1「OK」)というのは、何に対しての値なのでしょうか?? ヘルプも見ましたが、私にはさっぱりです。 どなたか簡単にご説明お願いします。

  • 引数で戻り値を取得するプログラム

    以下のように、引数で戻り値を取得するプログラムを書きたいのですが どのように書けば正しいでしょうか? VB6とVB2005の両方の書き方を教えてください。 sub kekka(byval src as string, byref dst() as string) dim ret() as string ret(0) = "abc" ret(1) = "efg" kekka = ret end sub kekka("xxx", dat() ) msgbox(dat(0)) msgbox(dat(1))

  • OKを押してもキャンセルを押しても、反応しない

    このコード、どこが間違ってるか教えてもらえますか? Sub test() Dim ret As Variant ret = InputBox("タイトルを入力してください。") If TypeName(ret) = "Boolean" Then MsgBox "キャンセルが選択されました" End If End Sub これで、キャンセルボタンを押しても、メッセージボックスが表示されません。 間違えてる部分がわかりません。

  • 戻り値で構造体を返すことは可能でしょうか?

    perlでは以下のように2つの戻り値が可能ですが、C言語では それができるのでしょうか? my (ret1, ret2) = test1(); よくやるのは、引数にポインタを渡して、内容を書き換える手を使っていますが、戻り値を複数返せたら、直感的にわかりやすいかなと思いまして・・・

  • vb.netでオブジェクトの種類を知りたい

    こんばんわ vb.netでオブジェクトの種類を知る方法はないでしょうか? 例 form上にtextbox1を配置した上で 'メインルーチン public sub main() dim ret = test(textbox1) msgbox("textbox1は" & ret & "です") endsub 'サブルーチン public function test(obj) dim ret as string 'ここでobjがtextboxかcheckboxか判別したい return ret end function このようなことが可能でしょうか? 可能なようでしたらどうすればよいかご教授お願いします。

  • エクセル メッセージボックスにタイトルとアイコンを入れる方法を教えてください。

    こんにちは。いつも大変お世話になってます。 If (vbYes <> MsgBox("実行しますか?", vbYesNo)) Then Exit Sub End If 以上のようなVBAを書きました。YESなら実行、NOならキャンセルです。 ここまではなんとかできたのですが、このメッセージボックスにタイトルと?マークのアイコンを追加するにはどうしたら良いのでしょうか?

  • メッセージボックスの表示位置について

    WindowsAPI(C言語)でメッセージボックスの表示位置を変更したいと思っています。 ダイアログボックスはSetWindowPosで変更できたのですが、メッセージボックスの表示位置が変更できずに困っています。 何か良いAPIや、実装方法などがありましたらご教授ください。 よろしくお願いします。

  • 条件に該当したテキストボックスの名前を

    はじめまして。 現在AccessでVBを書いているのですが少しわからない事が ありましたので質問させて下さい。 バージョンは2003です。 単票形式のフォームにて、既に作られているボタンを押すと あるテキストボックスの値が条件に該当する場合、テキストボックスの 色が黄色に変わるというVBが既に書かれています。 そのVBが実行された後、黄色に変わったテキストボックスだけの 名前をメッセージボックスに表示させたいのですが、 どのようなVBを書けばいいのでしょうか>< VB始めたばかりでまだよく理解できていないので ネットなどでいろいろ調べたのですがわからなくて… msgbox関数?を使えばいいのはわかるのですが。 良かったらご教授お願いします!

専門家に質問してみよう