目次
クラスモジュールについて
こんにちは。伊川(@naonaoke)です。
現在、勉強中の伊川です。
今回は、クラスモジュールの進捗状況についてお話します。
ExcelVBAは、日頃仕事でも使用しており、初級程度の心得はあるつもりなのですが、「クラスモジュール」の使い方がイマイチわかっておりません…。
「VBA クラスモジュール」などで動画検索をしてみたりはしましたが、今のところわかりやすい動画にも出会えていない状況です。
現時点で、クラスモジュールで何か具体的にやってみたい事がある、というわけではないのですが、自身の興味とスキル向上のため、もし可能であれば、
何か簡単な具体例でご紹介頂けないでしょうか?
宜しくお願い致します。
オブジェクト指向
この考え方は、グループサウンズのころからあるようです。
カンタンに言うと、プログラムを作成するときの考え方です。
本当にカンタンすぎに説明しました。
オブジェクト指向の言葉に出会ったのは、下記の書籍です。
このオブジェクト指向は、クラスモジュールを作成するうえで必要な考え方です。
クラスモジュールには、下記の考え方があります。
カプセル化
継承
ポリモーフィズム
カプセル化
他のプログラムに迷惑をかけない。
継承
共通部分から派生
ポリモーフィズム
車というものから派生します。
詳しくは、この動画で説明されています。
オブジェクト指向 考え方 その1 あるあるの説明
- タイ焼きの型⇒クラス
-
小麦粉を型に入れる⇒インスタンス
このように説明されます。
理解はできます。
しかし、現実に、たい焼きの型と、小麦粉をどのようにプログラムに表現するのか分かりません。
オブジェクト指向 考え方 その2 参考にしたサイト
このお二方に関しては、たい焼きの話に関しては、利用しないほうがいいと仰ってました。
オブジェクト指向 考え方 その3 現実の世界にプログラムを反映させる
しかし下記の書籍でこのように仰ってます。
オブジェクト指向 考え方 その4 ポチのプログラムを記載するには?
犬
犬の鳴き声を定義
ポチというネームタグを持った犬
鳴けという命令
犬
犬の鳴き声を定義
タローというネームタグを持った犬
鳴けという命令
このネームタグという考え方がポイントです。
オブジェクト指向 考え方 その5 クラスの設定
全てをグローバル変数に依存することはよろしくありません。
なぜならグローバル変数が破損すると、すべての作動が止まります。
このような記載ですと、見やすく、読みやすく、メンテナンスが楽になります。
クラスモジュールで、何ができるかではなく、
クラスモジュールを使う事で、コードが短縮され、エンジニアが楽できるという事です。
上の表から、インスタンス変数が、いかに優れているかという事がわかります。
オブジェクト指向 考え方 その6 下記の図が現時点での私の結論
もし、犬のクラスに猫が来たらどうなるのでしょうか?
多分エラーになります。
しかし、それでは、汎用性がないと思います。
現時点は、そのコードの書き方がわからないですが、猫のクラスから呼び出せるような気がします。
今回は、犬にワンとなくプログラムです。
もし猫のクラスからの呼び出し方法を、値渡しにすると、犬のクラスの値が変わります。
だから、参照渡しにして、犬のクラスの変数の値を保持したまま、ニャーと鳴かせることができるのではないでしょうか?
ここがポイント
長い間、勉強しましたが、いまだ結論に至りません。特に、クラスモジュールを使って、具体的なプログラムを記載するには至っていません。しかし、オブジェクト指向という考え方に出会って、少しだけ理解できたような気がします。
本当にプログラムの学校に行きたくなりました。
まとめ
なんとか、ご視聴者様の質問に答えるべく、勉強を継続します。
今回のサンプルファイルは、ありません。。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。