トップページ > プログラム > 2015年02月18日 > yLcFaQ17

書き込み順位&時間帯一覧

2 位/244 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000010132010000100009



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net

書き込みレス一覧

Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
479 :デフォルトの名無しさん[sage]:2015/02/18(水) 08:22:38.53 ID:yLcFaQ17
>>478
ない

VBAって参照を返せないのがなんとも不便だよなあ。ByRefで受け取った大きな配列をByRefで出力する方法はないものか。
これがあればパイプ処理できるのに。
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
483 :デフォルトの名無しさん[sage]:2015/02/18(水) 10:19:46.66 ID:yLcFaQ17
>>482
配列に対する操作を繋げたいんですよ。
func2(func2(func1(matrix)))
とやるとmatrixの3ヵ所が変更されるみたいに。
そのたびに新しく配列を作って返すんじゃ効率が悪いから、副作用ありで繋げる処理を書きたい。
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
484 :デフォルトの名無しさん[sage]:2015/02/18(水) 11:41:15.32 ID:yLcFaQ17
間違えた
func2(func2(func1(matrix)))じゃなくて
func3(func2(func1(matrix)))
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
487 :デフォルトの名無しさん[sage]:2015/02/18(水) 11:51:14.19 ID:yLcFaQ17
それともうひとつ言うと、for each で取る要素が参照じゃないのが不満。
x = x * 2 という式で各要素を2倍するなんてことができない。
そこをあきらめて y = x * 2 として別な配列に入れようと思っても、実際にやろうとすると y(i, j) って
書かなきゃならないが i と j を動かすスマートな方法がない。
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
488 :デフォルトの名無しさん[sage]:2015/02/18(水) 11:57:49.28 ID:yLcFaQ17
>>485
受け取るときはByRefにすればいいんだけど、関数からreturnするときはコピーが作られちゃうんですよ。
出した例でいうと、func1した結果は引数matrixに反映されるけど、後続処理はコピーに対する処理となるので反映されないです。
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
492 :デフォルトの名無しさん[sage]:2015/02/18(水) 12:18:55.27 ID:yLcFaQ17
>>491
たいていの処理を使い捨ての一行プログラムでこなせたりする?
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
496 :デフォルトの名無しさん[sage]:2015/02/18(水) 12:35:51.08 ID:yLcFaQ17
>>495
それをどこから(どういう環境から)実行するの?
対話的に実行できる?
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
504 :デフォルトの名無しさん[sage]:2015/02/18(水) 14:52:10.22 ID:yLcFaQ17
>>500
Rubyとか興味なくはないけど、一からやるとなると面倒だね。
VBAもツールが揃ってくると書き捨ての処理は一行プログラムで書けるようになってきて、そうなると参照返しが欲しくなる。
行を分けろと言うのは正論だけどさ。
Excel VBA 質問スレ Part36 [転載禁止]©2ch.net
515 :デフォルトの名無しさん[sage]:2015/02/18(水) 19:29:22.65 ID:yLcFaQ17
他言語使うの、プロクラムは書けても連繋がなあ。
自分もdllいくつか使ってるけど結局は俺様ローカルな世界になっちまう。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。