[ノンプロ研]VBA中級講座第3期第3回・クラス
オブジェクト Excelではいろんなものがオブジェクトとして作られている(ブック、シート、セルなど) →クラスという仕組みから生成されているけどインスタンスって言わない →そもそもシートやセルと作るためのコードを書いていない →関与していない #ノンプロ研
2021-09-03 20:34:52クラスモジュールを使って生成したインスタンスはオブジェクトなのでWithステートメントで使用することができる #ノンプロ研
2021-09-03 20:38:05インスタンスはオブジェクトです ブック、シート、セルもインスタンスです。 エクセルが予め準備してるモノなので毎回Newする必要がないのです #ノンプロ研 #エア中級VBA twitter.com/alice37308108/…
2021-09-03 20:38:15VBAにおいてオブジェクトとインスタンスって何が違うの? ・オブジェクト →ブック、シート、セルなど ・インスタンス →クラスモジュールから生成したオブジェクト #ノンプロ研
2021-09-03 20:34:51Dim myPerson As Person Set myPerson = New Person →この時にクラスをもとにしてインスタンスを生成する #ノンプロ研
2021-09-03 20:39:38同じ名前のProperty Let/Setプロシージャを作ることで、何らかの処理や制限を加えた結果を返すことができる #ノンプロ研
2021-09-03 20:59:54前回の講座と同じ内容ですねー 違いはオブジェクト 前回は すでにあるオブジェクト”Sheet” を使った 今回は カスタムに定義するオブジェクト(インスタンス)を使った #ノンプロ研 #エア中級VBA twitter.com/alice37308108/…
2021-09-03 21:05:51クラスモジュール、コードがどんどん長くなってわけわからん(というか読む気もしない💦)と思っていたけど、何でここはプライベート変数なんだろう?とか何でProperty Let/Setプロシージャを使うんだろう?とかがちょっとわかってくると、少しずつモヤモヤが取れていくのが楽しい #ノンプロ研
2021-09-03 21:12:26クラスモジュールのコードにブレイクポイント入れて、実行してみる。 ブレイクポイントで止まった時にローカルを見ると "Me" の下にメンバーの状況が表示されます つまり、"Me" は標準モジュールで新しく定義したインスタンスを表します。 ん?ナニ言ってるかわからない? #ノンプロ研 #エア中級
2021-09-03 21:12:49作ったクラスから新しいオブジェクトをNewして、 (定義した)オブジェクト. と、ドットを入れた瞬間、クラスモジュールに作ったメンバーがインテリセンスでずらりと並ぶ カスタムメンバーを搭載したオブジェクトが出来たと実感する瞬間ですね (*゚∀゚)ムッハー #ノンプロ研 #エア中級VBA
2021-09-03 21:18:33#ノンプロ研 コンストラクタ:インスタンスが生成されたときに実行されるもの デストラクタ:インスタンスが破棄されたときに実行されるもの なんだこれw
2021-09-03 21:22:02コンストラクタ →インスタンスが生成されたタイミングで実行されるメソッド デストラクタ →インスタンスが破棄されたタイミングで実行されるメソッド #ノンプロ研
2021-09-03 21:22:25コンストラクタ →インスタンスが生成されるときに実行されるメソッド →クラスをNewしたときに実行されるメソッド デストラクタ →インスタンスが破棄されるときに実行されるメソッド #ノンプロ研
2021-09-03 21:24:23でもPrivate 定義したメンバーはインテリセンスに表示されまてん。 モジュールレベルのスコープで定義されたメンバーだから( ゚ー゚)ウ ( 。_。)ン #ノンプロ研 #エア中級VBA twitter.com/fukucyndip/sta…
2021-09-03 21:26:26クラスで使用できるイベント Initialize: インスタンスが生成されたとき Terminate: インスタンスへの参照がすべて失われたとき Initializeは引数が渡せないので注意。 (引数を渡したい場合はSubプロシージャで作成する) #ノンプロ研
2021-09-03 21:32:08#ノンプロ研 なるほど!イベントマクロ使うのね!! コンストラクタに該当するのがClass_Initialize デストラクタに該当するのがClass_Terminate ビビッときた!!
2021-09-03 21:32:32コンストラクタに引数渡しt...... いえ。欲しがりません-ω-) #ノンプロ研 #エア中級VBA twitter.com/alice37308108/…
2021-09-03 21:32:39クラスモジュールにあるイベントプロシージャ コンストラクタ →Initialize →インスタンスが生成されたとき デストラクタ →Terminate →インスタンスへの参照がすべて失われたとき →インスタンスが破棄されたとき(プロシージャが終了するとき) #ノンプロ研
2021-09-03 21:34:26