Excel VBA質問箱 IV

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

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


1152 / 76734 ←次へ | 前へ→

【81237】配列を戻り値とする関数
質問  akiholic  - 20/3/25(水) 23:05 -

引用なし
パスワード
   配列を戻り値とする関数として、以下のようなコードを考えています。
TestFunc1のように、戻り値用の変数(ret)を使って記載すれば問題ないですが、
TestFunc2のように、直接戻り値(TestFunc2)を使って記載するとエラーになります。
どうもTestFunc2(0)が、関数呼び出しとして解釈されているようですが、
この問題を回避する方法をご存じの方がいらっしゃればご教示いただきたく。
なお、大規模な配列を想定しており、戻り値用のテンポラリ変数を使用してしまうと、
要素がコピーされることを回避したいと考えたことが発端です。

Sub Test()
  Dim a As Variant, b As Variant
  a = Array(1)
  b = TestFunc1(a)
  Debug.Print b(0)

  b = TestFunc2(a)
  Debug.Print b(0)
End Sub

Function TestFunc1(a As Variant) As Variant
  Dim ret As Variant
  ret = a
  ret(0) = 10
  TestFunc1 = ret
End Function

Function TestFunc2(a As Variant) As Variant
  TestFunc2 = a
  TestFunc2(0) = 10
End Function

6 hits

【81237】配列を戻り値とする関数 akiholic 20/3/25(水) 23:05 質問[未読]
【81238】Re:配列を戻り値とする関数 γ 20/3/26(木) 16:53 発言[未読]
【81240】Re:配列を戻り値とする関数 akiholic 20/3/29(日) 13:11 お礼[未読]
【81239】Re:配列を戻り値とする関数 Jaka 20/3/27(金) 20:54 発言[未読]
【81241】Re:配列を戻り値とする関数 akiholic 20/3/29(日) 13:25 お礼[未読]
【81242】Re:配列を戻り値とする関数 Jaka 20/3/31(火) 3:04 発言[未読]
【81243】Re:配列を戻り値とする関数 akiholic 20/3/31(火) 23:24 回答[未読]

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