エクセルVBA オブジェクト指向備忘録クラス(何となく分かったこと。クラスに寄せる。)

20240405エクセルVBA オブジェクト指向備忘録クラス(何となく分かったこと。クラスに寄せる。)

 

ここしばらく、エクセルVBAオブジェクト指向について、書いてます。

自分用なりのメモ。素人なのですみません。汗。(今回、コードもないです。振り返りメモ。)

 

過去の記事

(1)記事「20240301エクセルVBA オブジェクト指向備忘録クラス ドメインオブジェクト全部を標準モジュールに」
では、「重要なオブジェクト(ドメインオブジェクト=各クラスの結果)を、標準モジュールで確認できた方がいいのでは?」
との考えを元に、クラスに書く内容を、標準モジュールに「書き戻し」たりした。

 

過去の記事

(2)記事「20240307 エクセルVBAクラス備忘録 (メモ)お手本を見ながら、クラスを作って改良する」では、標準モジュールに書かれたコードを、「クラス側に寄せる」ことをやりました。
(その後のいくつかの記事も同じパターンで、別の例でやっています。)

 


特に記事(2)ですが、オブジェクトに親子関係を「作っている」。
「氏名」クラスが「子」クラスだとしたら、「氏名リスト」がそれらを束ねる「親」クラス。
これは、worksheetsオブジェクト(親)がworksheetオブジェクト(子)を持つイメージに近いですが、
自分で作るオブジェクトは、実際に、コレクションなど「コーディングを行うことで、親子関係にする必要」がある。
(自動で勝手にするわけではないし、親だ、子だと宣言するのでもない。コレクションなどで関連づけ。VBAだけ?)

 

で、その「親子」関係を持つ複数のクラスを作る場合、親子の関係をつなぐコードは、「クラス内部」に書くのが自然だろう。


(コレクションなら子をアイテムとして、親にコーディングが自然。)

 

・・・とすると、記事(1)で、書いたように、すべての重要なオブジェクト(ドメインオブジェクト=各クラスの結果)」を、標準モジュールに書くことは、あまりよくない。(かえって、クラス同志の関係が分かりにくくなる。)

 

同じことだが、クラスとクラスの関連が分かれば、コードを「クラスに寄せる」方がいいのだろう。多分。

 

あと、親子のクラスの作り方ですが、今まで、「最小単位の子クラス」を作って、さて、次はどうしようと思っていたが、クラスは「親子関係」(が多い)と考えるなら、コーディングでは、大元・基本となる「親」クラスから、書き始めるのもいいのかもと思っている。


「親の親の親」とか、かもしれないが、演繹的に、書くことができれば、「流れ」が見える気がする。

 

クラスを使わない「手続き」型の流れは、標準モジュールのコードの「上から下へ流れる」が、オブジェクト指向は、「クラスの親から子に流れる」のか・・・も。

 

また、以前は、メモリを食わないように、シート中心に考えていたが、今は、データを一気にコレクションとかディクショナリとか、シートからはがして読み込んでもいいのかも。

 

いろんなHPやYouTube等に感謝感謝感謝です。