- ベストアンサー
メッセージボックスのタイトル設定
メッセージボックスのタイトル設定についてです。 (使用言語はVB5.0です) 例えば、 Ret = msgbox("テスト", ,"title") と書くと、タイトル部にtitleと表示されます。 戻り値は省略しようと思い、 msgbox("テスト", ,"title") と書くとエラーが出てしまうのですが、何故でしょうか? MsgBox "テスト", Title:="title" と、明示すれば戻り値を省略できますが、上の書き方だと 何故うまくいかないのかちょっと気になっているので、 ご教授ください。
- みんなの回答 (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の様な動作(プロシージャ内で変数を変更しても、呼び出し元に反映されない)になってしまい、 気づき難いトラブルの原因になりますので、注意が必要です。
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
>と書くとエラーが出てしまうのですが、何故でしょうか? msgbox() となっているので、関数(戻り値がある=受け皿が必要)と判断されるからです。 表示だけなら、 MsgBox "てすと", , "title" として下さい。
お礼
ありがとうございました。
お礼
大変よくわかりました。 ありがとうございました。