メソッドとは

「メソッド」とは、オブジェクトに対する動作を命令するキーワードのことです。例えば、ワークシート「5月売上」を選択する操作を記録した場合、次のようなステートメントが記述されます。


この「Select」がメソッドです。Selectメソッドは、ワークシートを選択するメソッドです。オブジェクトの記述に続いて「.(ピリオド)」が記述されています。この「.」は「を」や「に」に読み替えると良いでしょう。したがって、このステートメントは「ワークシート「5月売上」を選択する」と読み解くことができます。


まとめると、メソッドでオブジェクトを操作するステートメントは、次のような構文になります。


引数による記述

なお、動作に関する具体的な指示が記述される場合があります。例えば、ワークシート「4月売上」をワークシート「5月売上」の右側に移動した場合、次のようなステートメントが記述されます。


「.」に続いて記述されているMoveメソッドは、ワークシートを移動するメソッドです。そして、半角スペースに続いて記述されている「After」は「引数」と呼ばれるキーワードで、メソッドに関する具体的な指示が記述されています。引数の値は「:=」に続いて記述されます。

ここで想定しているブックには、左から順番に、ワークシート「4月売上」とワークシート「5月売上」が作成されているので、記述されている具体的な指示は「2枚目のワークシート(つまり「5月売上」)の後(つまり右側)に移動する」ことを表しています。

したがって、このステートメントは「ワークシート『4月売上』をワークシート『5月売上』の右側に移動する」と読み解くことができます。


まとめると、引数の記述があるメソッドの構文は、次のようになります。なお、複数の引数がある場合は、「,(カンマ)」で区切って記述されます。


ピリオドの後はプロパティなのかメソッドなのか

これまでの構文をまとめると、次のようになります。


こうして見ると、1番目と4番目の構文の場合、構文の形から「.(ピリオド)に続くキーワードがプロパティなのかメソッドなのか」を見分けることができそうです。
「.」に続くキーワードの後に、「=」が記述されていればプロパティですし、半角スペースに続いて「別キーワード:=」が記述されていればメソッドです。プロパティであると判別できれば「何かオブジェクトの値を設定しているのだな」と予想がつきます。メソッドであると判別できれば「オブジェクトの操作を表しているのだな」と予想がつきます。

ところが、2番目と3番目の構文の場合、構文の形に違いがないため、ぱっと見てプロパティなのかメソッドなのかを区別できません。この場合は、そのキーワード上にカーソルを置いてF1キーを押してみましょう。すると、VBAのヘルプが起動して、カーソルを置いたキーワードのヘルプが表示されます。表示されたヘルプを見れば、プロパティなのかメソッドなのかを確認できますし、もちろん、キーワードの詳細についても調べることができます。


使えるプロパティ・メソッドはオブジェクトごとに違う


Selectメソッドは、Worksheetオブジェクトに対して使えますが、Workbookオブジェクトに対して使えません。Workbookオブジェクトでは、Activateメソッドを使ってブックをアクティブにします。このように、オブジェクトごとに使えるプロパティ・メソッドが決まっています。そして、オブジェクトが持っているプロパティ・メソッドを総称して、そのオブジェクトの「メンバ」といいます。

マクロ記録で作成されたプロシージャ(ひとつのVBAプログラム)を読む上では、特に重要ではありませんが、今後、プロシージャを一から書く場合にも備えて、
「このオブジェクトに対して、どんなプロパティ・メソッドを使えるのか?」
といった視点は重要です。つまり、マクロで作成されたプロシージャを読みながら「オブジェクトのメンバを意識する」ということです。今のうちから、このような視点でプロシージャを読んでいきましょう。

エクセルのマクロ基本構文と読み方(オブジェクト)」では、オブジェクトの階層構造の話やWithステートメントの読み方などについて紹介しています。こちらもぜひご覧ください。


■All Aboutで「毎月の家計」について、アンケートを実施中です!
回答いただいた内容をAll About記事企画の参考にさせていただきます
※毎月5名の方にAmazonギフト券1000円分をプレゼント

「毎月の家計についてのアンケート」に回答する


※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。