Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


44007 / 76732 ←次へ | 前へ→

【37748】メンバの参照渡し
質問  Yj  - 06/5/17(水) 19:00 -

引用なし
パスワード
   はじめまして。

Excel 2003 の VBA について質問です。

 標準モジュールで定義している関数の引数に、メンバ変数を「参照渡し」で渡し、結果をメンバ変数へ代入するというものです。つまり、参照渡しの引数を戻り値のように使用するというものなんですが、出来ないです。

 下記に確認したコードを記します。
 ご返答頂けると助かります。

<コードの概要>
 内容は、クラスモジュールの String 型のメンバ変数(sTargetFolder)を、r2 関数へ参照渡しで渡し、r2 関数内で値を変更。その後、Debug.Print でイミディエイト・ウィンドウへ出力する、というものです。


<クラスモジュール「CWork」>
public sTargetFolder as string


<標準モジュール「main」>
Private Sub r2(ByRef lpValue As String)
'サンプルとして、アクティブ・セルの内容を代入する処理にしていますが、
'本来は色々な計算を行った結果を代入するものになります。
'また、戻り値は関数にあたえた引数の成否の結果を示す値に使うため、
'戻り値で計算結果返すことはできません。
  lpValue = ActiveCell.value
End Sub

Private Sub r()
  Dim wk As New CWork

  r2 wk.sTargetFolder

  Debug.Print "1.""" & wk.sTargetFolder & """"


  Dim s As String

  r2 s

  Debug.Print "2.""" & s & """"

  '何故 1 と 2 の出力結果がことなるの?
End Sub
1 hits

【37748】メンバの参照渡し Yj 06/5/17(水) 19:00 質問
【37750】Re:メンバの参照渡し neptune 06/5/17(水) 21:06 発言
【37751】Re:メンバの参照渡し neptune 06/5/17(水) 21:08 発言
【37765】Re:メンバの参照渡し Yj 06/5/18(木) 13:03 お礼
【37754】Re:メンバの参照渡し ichinose 06/5/17(水) 22:46 発言
【37756】Re:メンバの参照渡し kobasan 06/5/17(水) 23:56 発言
【37766】Re:メンバの参照渡し Yj 06/5/18(木) 13:40 お礼
【37796】Re:メンバの参照渡し Yj 06/5/18(木) 21:06 発言
【37811】Re:メンバの参照渡し ichinose 06/5/19(金) 9:27 発言

44007 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free