投稿日 | : 2007/02/17(Sat) 13:32 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: プロパティの参照渡しで値が変更されない |
> 下のソースで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