Excel VBA質問箱 IV

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

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


1108 / 13645 ツリー ←次へ | 前へ→

【76306】行列を返す関数 しゅくまる 14/10/29(水) 22:17 質問[未読]
【76310】Re:行列を返す関数 γ 14/10/30(木) 7:38 発言[未読]
【76312】Re:行列を返す関数 ichinose 14/10/30(木) 8:29 発言[未読]

【76306】行列を返す関数
質問  しゅくまる  - 14/10/29(水) 22:17 -

引用なし
パスワード
   ワークシート関数のMMULTのように、行列を返す関数を作りたいです。
戻り値の扱いが分からないので教えてほしいです。
たとえば、
関数 test(A as Range, B as Range) as variant を定義して、
戻り値として、行列の掛け算A*Bの結果として a(i,j)が計算され、
セルCiからにEjに={test(Ai:Cj,Dj:Dj)}と入力した場合に
セルCiからにEjにa(i,j)を代入するという
つまり、例としてMMULT関数と同じことをさせたいです。
戻り値の代入test=a()で#VALUE!エラーになって対処がわからずです。

【76310】Re:行列を返す関数
発言  γ  - 14/10/30(木) 7:38 -

引用なし
パスワード
   ▼しゅくまる さん:
>戻り値の代入test=a()で#VALUE!エラーになって対処がわからずです。
test = a
なのかな。
コードの全体を見せた方が回答は集まりやすいでしょう。

【76312】Re:行列を返す関数
発言  ichinose  - 14/10/30(木) 8:29 -

引用なし
パスワード
   ▼しゅくまる さん:
>ワークシート関数のMMULTのように、行列を返す関数を作りたいです。
>戻り値の扱いが分からないので教えてほしいです。
>たとえば、
>関数 test(A as Range, B as Range) as variant を定義して、
>戻り値として、行列の掛け算A*Bの結果として a(i,j)が計算され、
>セルCiからにEjに={test(Ai:Cj,Dj:Dj)}と入力した場合に
>セルCiからにEjにa(i,j)を代入するという
>つまり、例としてMMULT関数と同じことをさせたいです。
>戻り値の代入test=a()で#VALUE!エラーになって対処がわからずです。

呼び出しもコードからしてみては?

sub main()
  dim ans as variant
  ans=test(range("a1:c3"),range("d1:d3"))
end sub

これで何かしらのエラーが発生しませんか?

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