VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/02/17(Sat) 14:01
投稿者らんでぃ
Eメール
URL
タイトルRe^2: プロパティの参照渡しで値が変更されない

魔界の仮面弁士さん、こんにちは。

早速の回答ありがとうございます。
Text1.Textは「式」になるのですね。

VB6.0の値渡しや参照渡し等の基本的な言語仕様が思い出せなくて、いろいろ実験ソースを作成して試していたのですが、さらに謎が深まって悩んでいたところでした。


> > 下のソースでText1.Textが"かきくけこ"に変ってくれないのは仕様でしたっけ?
>
> ByRef 引数にプロパティ・メソッド・関数・リテラル等の「式」を渡した場合には、
> 内部で一時的な変数が作られ、その一時変数が書き変えられるだけなので、
> 実質上、ByVal 相当の動作となります。
>
> ByRef で内容が書き変わるのは、渡したデータが「変数」であった場合だけです。
>    Dim s As String
>    Call func(s)
>    Text1.Text = s
> のようにすれば、反映させる事ができるでしょう。
> # ただしこのようなケースでは、参照型引数を使うのではなく、戻り値で処理するべきです。
>
>
> ついでに、ByVal / ByRef に引数にオブジェクト(例:TextBox)を渡した場合の動作について、
> 下記も読んでおかれるとよいでしょう。
> http://support.microsoft.com/kb/161308/ja


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -