Excel VBA 質問スレ Part45at TECH
Excel VBA 質問スレ Part45 - 暇つぶし2ch1013:デフォルトの名無しさん
17/02/17 21:35:53.77 BVl9fCvE.net
>>981
ごく普通にオブジェクト指向でコードを書くだけ
自然と2次元以上の配列がコードから消え去る
VBAコーダーはクラスもまともに使えない人ばかりだからわからないだろうけどね

1014:デフォルトの名無しさん
17/02/17 21:42:04.44 /Ik0xHA1.net
>>982
ほほー
するとn次元配列と比較して
どういったメリットを得て
デメリットはどうなる?

ケーススタディはどうなるかな?

1015:デフォルトの名無しさん
17/02/17 21:42:55.04 6fUPUfvd.net
確かにクラス使いはじめて二次元配列使うことは減ったな
最近大量のエクセルデータ扱うツールも作ってないし
配列よりコレクション使った方が取り回し良いしな
ボリュームを決めなきゃいけないリストの場合は配列使うが

1016:デフォルトの名無しさん
17/02/17 21:56:35.30 BVl9fCvE.net
>>983
多次元配列という柔軟性のない使いにくいわかりにくい物理的な構造から解放されてモデリングが容易になる
優れたモデリングはプログラムの保守性や拡張性を向上するために必須って常識だよね

逆に疑問なんだがビジネスで多次元配列を多用するってどこの業界なんだ?
仕事しててもそういう話って聞かないから気になる

1017:デフォルトの名無しさん
17/02/17 21:57:21.66 YWoqzdEN.net
VBAでクラス。。。
単独の便利クラスを作ったり使ったりするのはありなんだけど体系だったものを作るのは難しい。
というか使い捨てになってしまう。

複数のクラス体系に対応した共通のアルゴリズムというのを事前に構築することができないんだよ。

1018:デフォルトの名無しさん
17/02/17 22:00:32.92 57XKQRPM.net
>>985
配列は抽象度が低い←わかる

だがクラスオブジェクトの配列じゃ縦横に可変長という構造は作れない

1019:デフォルトの名無しさん
17/02/17 22:01:19.36 Q0oePE6a.net
Variantoの話には飽きて今度はまたまたおなじみのクラスがどうたらこうたらで続ける気か

1020:デフォルトの名無しさん
17/02/17 22:03:31.40 DzGsmJeY.net
>>987
二次元可変配列が必要となる状況が想像できない

1021:デフォルトの名無しさん
17/02/17 22:09:04.09 8qknrLBg.net
二次元配列をグラフィカルに表現するソフト上で走る為のコードを書くExcel VBAを取り扱うスレッドで、
「二次元配列なんかいらねぇ!」って言い出すくらいなら、適切な開発環境の選定をもうちょっと真面目にやるべきだと思う。

1022:デフォルトの名無しさん
17/02/17 22:11:59.19 BVl9fCvE.net
>>987
それは錯覚だな



1023:例えばスパース行列とかはインターフェースはまるで2次元配列のようだけど中身は全然2次元配列じゃないクラスだよね もちろん多次元配列っぽいインターフェースがそもそも必要になることは少ないが



1024:デフォルトの名無しさん
17/02/17 22:21:00.23 57XKQRPM.net
そもそも配列とクラスじゃ直交してて選択する話じゃないな。
Dim arr() As Object
ReDim arr(0 To m , 0 To n)
ってできるんだし。

1025:デフォルトの名無しさん
17/02/17 22:21:15.87 BVl9fCvE.net
>>990
これがまさにスプレッドシートというユーザーインターフェースに束縛された状態
なるほど、確かにユーザーインターフェースはスプレッドシートだし、ぼんやり眺めるとバリアントの2次元配列のように見える
しかしながら、内部的な処理まで2次元配列で行う必要は本当にあるのだろうか
2次元配列のわかりにくいコードを書くよりも、型安全でオブジェクティブな構造に変換してから、手強いビジネスロジックに立ち向かったほうが、健全なコーディングができそうだ、とは思わないのだろうか

1026:デフォルトの名無しさん
17/02/17 22:28:03.46 8qknrLBg.net
>>993
処理結果をセルに保存しないならエクセルで処理する理由がないし、
セル一つ一つにアクセスして結果を保存してるならただの馬鹿なんだけど。

それとも最終的に二次元配列に加工する場合でも、
中間段階では二次元配列を使わないから「めったに使わない」と表現してるんだろうか。

1027:デフォルトの名無しさん
17/02/17 22:29:19.82 57XKQRPM.net
>>993
オブジェクトの1次元配列は作らないのか?
そこから条件に合致したオブジェクトを探すという操作は発生しないのか?
そのとき>>972のような関数がそのまま使えたら便利だとは思わないか?
(= で比較可能ってのはダメだが)

1028:デフォルトの名無しさん
17/02/17 22:37:51.46 /Ik0xHA1.net
>>995
長さnのn次元配列
意味が分からん。
なんの長さよ

1029:デフォルトの名無しさん
17/02/17 22:44:58.32 BVl9fCvE.net
>>994
セルに保存するだけしかしてないならそれこそ勿体無い馬鹿

それは遅いから配列取り出して書き込めってことか?

滅多に使わんというのはそういうことだよ
シートとの境界では仕方なく使うことはあるけど、そうじゃなきゃ滅多に使わんし、使う理由もない

1030:デフォルトの名無しさん
17/02/17 22:49:38.85 57XKQRPM.net
>>996
>>972のことか?
返り値だ。
N次元配列からのサーチ結果はターゲットが見つかったとしたら
(x1, x2, ..., xn)
という長さNの1次元配列になるということだ。
つまりインデックス長だ。

1031:デフォルトの名無しさん
17/02/17 22:50:36.99 AYehqi+e.net
以上

1032:デフォルトの名無しさん
17/02/17 22:50:55.49 AYehqi+e.net
variantを使えないバカ達でした

1033:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch