

「オブジェクト?メソッド?プロパティ?」
どんな意味か分からないし、そもそも何が違うの?

こんなエラーメッセージを見たことはありますか?
エラーメッセージには専門用語があり、分からない方も多いのではないでしょうか。
そんな時、オブジェクト・プロパティ・メソッドなどの意味や違いが分かればエラーに対応し易くなります。
本記事では基本的な専門用語を図解で分かりやすく解説していきます。最後には上記エラーメッセージが理解できるようなっていると思います。
・オブジェクト・プロパティ・メソッドの意味と違いが知りたい
・VBAの基本的な専門用語が知りたい
・上記エラーメッセージの意味が知りたい
・オブジェクト:操作ができるモノ。「ワークシート」「セル」「フォント」など
・プロパティ:オブジェクトの情報。「Value(値)」「Color(色)」「Size(大きさ)」など
・メソッド:オブジェクトに機能を付ける。「Delete(削除する)」「Copy(コピーする)」など
・プロシージャ・モジュール・プロジェクトの用語を知っていればVBAの理解力も上がる
・「オブジェクトは、このプロパティまたはメソッドをサポートしていません」→プロパティやメソッドのスペルを間違えている可能性が高い
まずはオブジェクト・プロパティ・メソッドを分かりやすくイメージしてもら為に、車に例えます。
「オブジェクト(モノ):車」「プロパティ(情報):車の色」「メソッド(動作):走る」とイメージすると考えやすくなると思います。

オブジェクトとは
オブジェクトとは、Excelで「操作できるモノ」のことを指します。


実際にワークシートやセルが「オブジェクト」と聞くとイメージし易いのではないでしょうか。
プロパティとは
プロパティとは、オブジェクトの「情報」のことを指します。
オブジェクトをセルとした時、セルの「Value:値」がプロパティになります。

プロパティは「オブジェクト”の”○○」と言うようにオブジェクトの次に”の”が入るとプロパティだと思ってください。
メソッドとは
メソッドとは、オブジェクトに「機能を付ける」ことを指します。
オブジェクトをセルとした時、セルを「Copy:コピーする」がメソッドになります。

メソッドは「オブジェクトを○○”する”」と言うように動詞が入ってきたらメソッドだと思ってください。
メソッドの親戚で「関数」という用語もあります
「関数」はメソッドと同じく機能を表します。
メソッドはオブジェクトに機能を付けることですが、関数はオブジェクトに関係なく機能を表す際に使用する用語です。
例えば、「メッセージボックスを表示するMsgBox関数」「現在の日時を取得するNow関数」などあります。
「メソッドと関数は機能を表す用語」と思って問題ありません。
基本的なVBA用語
プロシージャ・モジュール・プロジェクトという基本的なVBAの専門用語があります。
知らなくてもコードは書けますが、中級者以上になると知っておいた方がいい用語になるので、出来れば理解しておきましょう。

プロシージャとは、コードで書いた処理のまとまりのこと。
マクロが動く最小単位のことでもあります。
VBAでは「Subプロシージャ」「Functionプロシージャ」「Propatyプロシージャ」がありますが、ビギナーのうちは「Subプロシージャ」だけ覚えれば問題ありません。

上記の通り、「Sub プロシージャ名()~End Sub」までがプロシージャとなります。
名前はtomorrowとなっていますが、プロシージャ名は一部を除いて自由に決めることが出来ます。
モジュールとは1つ、もしくは複数のプロシージャが集まり構成されたプログラムのこと。
マクロを作るときは標準モジュールを作り、その中にプロシージャの処理を書きます。
マクロ(標準モジュール)以外にもユーザーフォームやクラスモジュールなどありますが、初めのうちはマクロ(標準モジュール)のみ覚えて頂ければ問題ありません。

プロジェクトとは、モジュールが集まり構成されたデータの塊のこと。
Excelでは1つのワークブックに、1つのプロジェクトが存在します。
基本的にはプロジェクトは1つだと覚えて頂ければ問題ありません。

オブジェクトは、このプロパティまたはメソッドをサポートしていません
つまり、「このプロパティ(情報)やメソッド(機能)を認識できません」というメッセージです。

上記の例だと、このプロパティ(Valeu)を認識できないので、間違ってる可能性が高いです。
実際にValeuはスペルが間違っており、「Value」に直すと実行されると思います。
このように、エラーのときは専門用語がたくさん出てくるので、基礎的な用語でも知っていれば対処しやすいと思います。
まとめ
・オブジェクト:操作ができるモノ。「ワークシート」「セル」「フォント」
・プロパティ:オブジェクトの情報。「オブジェクト”の”○○」「セル”の”値」
・メソッド:オブジェクトに機能を付ける。「オブジェクトを○○”する”」「セルを削除”する”」
・マクロの最小単位であるプロシージャ➡モジュール➡プロジェクトの順に大きくなっていく
・「オブジェクトは、このプロパティまたはメソッドをサポートしていません」→プロパティやメソッドのスペルを間違えている可能性が高い
コメント