オブジェクト指向とVBAの関係

今回は、少し概念的な話になります。
皆さんは、オブジェクト指向という言葉はご存知でしょうか?

オブジェクト指向の概念

オブジェクト指向とは、現実世界の物事をプログラムで表現するための方法です。
例えば、車や犬などの物事を、プログラムで表現することができます。
それぞれの物事を「オブジェクト」として扱い、そのオブジェクトが持つ性質や振る舞いをプログラムで定義することができます。

あなたがいる部屋には、いくつかの物があるでしょう。
机、椅子、本棚、本などです。
それぞれの物には、形や色、大きさなどの「性質」があります。
また、それらの物には「振る舞い」があります。例えば、椅子に座ることができる、本を開くことができるなどです。
このように、現実世界の物事には、それぞれの性質や振る舞いがあるわけです。

オブジェクト指向では、このような物事をプログラムで表現します。
例えば、机という「オブジェクト」を定義すると、そのオブジェクトが持つ「性質」として、「高さ」や「幅」、「色」などを定義することができます。
また、「振る舞い」として、「上に物をのせる」、「引き出しを開く」などを定義することができます。

VBAはオブジェクト指向なのか?

結論から言うと、VBAは完全なオブジェクト指向言語ではありませんが、オブジェクト指向の特徴を多くサポートしています。
証拠として、VBAでもクラスやオブジェクト、メソッドやプロパティといったオブジェクト指向の機能が使えます。しかし、完全にサポートしているか?と考えるとそうではないのもまた事実です。

例えば、VBAには継承やポリモーフィズムなどの高度な機能については、より本格的なオブジェクト指向言語に比べると限定的と言えます。

だからといって、VBAの開発者がオブジェクト指向の概念を軽視していいわけではありません。
オブジェクト指向の基本概念は、プログラムの設計に限らず、コンピュータサイエンスの基礎的な考え方の一つです。VBAをはじめとするどの言語を使う場合でも、オブジェクト指向の基本概念を理解していると、より効果的な開発ができるでしょう。

コメント