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

投稿日: 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


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

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

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