2022-01-14 VBAでクラスを利用するということは

1
ほえほえ@スプシマン @hoehoe1234

VBAのクラスは、クラスとしてみると欠陥だらけというか、C++の流れを組むクラスではなくて標準モジュールの延長。で、クラスをレコードの延長とみるか機能の集約としてみるかで腹落ちが違うと思います。後者にとらわれているとクラスを理解するのは難しいと思います。前者の延長線のほうがいいかな?

2022-01-13 23:51:08
ほえほえ@スプシマン @hoehoe1234

データにメソッドがついているのであって、メソッドにデータがついているのではないんですね。メソッドだけを集めたstaticぽいクラスは、データを外部から与える単に機能集約であり、レコードの各データにメソッドが肉付けする、かつ、多様性が追加されたみたいな感じでしょうか?

2022-01-13 23:52:26
ほえほえ@スプシマン @hoehoe1234

VBAだけではクラスを、いわゆるクラスを理解することはとても難しいので、一旦、他の言語でそれなりのオブジェクト指向言語を習得してから戻るとうまくつかえるのではないでしょうか?それとも最初からVBA特有の制限された利用をマスターするか?どっちが現実的なのかわからないんですよね。

2022-01-13 23:53:42
ほえほえ@スプシマン @hoehoe1234

C言語、その他言語、JavaとやってきてからVBAでしたので最初からオブジェクト指向の勉強をしていたので。いわゆるオブジェクト指向の設計方法論を学んでもVBAでは役に立たないわけで、VBAとしての、標準関数の延長としてのクラスの使い方みたいな感じでしょうか?

2022-01-13 23:55:43
ほえほえ@スプシマン @hoehoe1234

オブジェクト指向設計って、ワイのの理解では「データでアプリの骨組みをつくっておいて」、実行時に動的にオブジェクトをバインドして多様性を利用してすべてを間接実行するイメージなんですね。制御の逆転とも言われますが、ワイの感覚ではレコードの構造に対して多様性を利用して機能が構造を

2022-01-13 23:59:40
ほえほえ@スプシマン @hoehoe1234

なぞるようなイメージなんですよね。デザインパターンも結局はそういうこと(レコードの構造と多様性を利用した動的バインディング、機能の構造のトレース)だと思いますし。

2022-01-14 00:00:49