
前回はプロパティの基礎知識についてまとめました。
【Excel VBA】プロパティの基礎知識まとめ | Excelを制する者は人生を制す ~No Excel No Life~
Excel VBAにおいてオブジェクトを扱う上ではプロパティと双璧の存在ともいえるのが「メソッド」です。
今回はメソッドの基礎知識についてまとめていきます。
メソッドとは?
まず、そもそも他のプログラミング上でのメソッドの定義を確認しておきます。
オブジェクト指向プログラミングにおいて、各オブジェクトが持っている自身に対する操作。オブジェクトは「データ」と「手続き」から成っているが、その「手続き」の部分に当たる。プログラミング言語によっては「メンバ関数」と呼ばれることもある。
オブジェクト指向では、オブジェクトの持つデータを操作する方法はオブジェクト自身がメソッドとして内蔵しており、これを外部から呼び出すことによって操作を行う。こうすることにより、操作の詳細をオブジェクト内部に隠蔽することができ、プログラムの再利用性や生産性を高めやすくなると言われている。
例えば、「テレビ」をオブジェクトとすれば、「画面を映す」「チャンネルを変える」といった操作がメソッドとなる。テレビのユーザはその内部の挙動の詳細を知らなくても、リモコンからメッセージを送って希望するメソッドを呼び出すだけで、テレビを操作することができる。
参照元:メソッドとは 〔 メンバ関数 〕 【 method 】 – 意味/解説/説明/定義 : IT用語辞典
Excel VBAでいうメソッド
プロパティと並び、オブジェクトを扱う方法で重要なのが「メソッド」です。メソッドとは、一言で表せば、「オブジェクトの動作」になります。
参照元:「Excel VBAのプログラミングのツボとコツがゼッタイにわかる本」
イメージとして、普段ワークシート上で行っている各種操作に該当します。
- コピー
- 貼り付け
- 選択
- クリア .etc
メソッドの基本的なコード記述方法
メソッドは予め役割によって名前が決まっています。
例)「Copy」メソッドは対象のオブジェクトをコピーする動作を意味します。(他にもさまざまなメソッドが存在します)
VBE上でコードを記述する上での方法は以下の通り、対象のオブジェクトとメソッドを”.”[ピリオド]でつなげることが基本になります。
1 | オブジェクト名.メソッド名 |
メソッドの応用的な2つの使い方
メソッドによっては上記の基本的な使い方に加えて応用的な方法が2種類あります。
- 引数
- 戻り値
では、それぞれ詳細を確認していきます。
引数
「引数」とは、メソッドが実行する際の”条件”を指定するためのVBAの仕組みです。メソッドによっては、どのように動作するのか、細かく指定しなければならないケースがあります。その際に利用するのが引数なのです。
参照元:「Excel VBAのプログラミングのツボとコツがゼッタイにわかる本」
なお、引数がある場合のコードの記述方法は以下の通りとなります。
1 | メソッド名 引数名:=設定値 |
メソッド名の後に半角スペースの後に引数名を入力し、その後に”:=”[コロンとイコール]で設定値をつなげます。
引数が複数ある場合は以下の記述方法になります。
1 | メソッド名 引数名1:=設定値1,引数名2:=設定値2,.... |
引数と設定値のセットを”,”[カンマ]で区切って並べます。
戻り値
メソッドの中には、実行後に実行結果の値を戻すものがあります。そのような値のことを「戻り値」と呼びます。メソッドの戻り値として得た値は、「=」演算子を使って他のプロパティに代入するなど、その後の処理に用います。
参照元:「Excel VBAのプログラミングのツボとコツがゼッタイにわかる本」
なかなか難しい概念ですが、Excelワークシート上の関数をイメージするとわかりやすいです。
対象のセルに設定したSUM関数やAVERAGE関数などの計算結果がセルの値として返ることに近いですね!
まとめ
メソッド名は普段の操作の名称と近しいものが多いので比較的覚えやすい方ですね。
引数や戻り値があるメソッドはなかなか慣れるまではヘルプや参考書、ネット等を参照する必要がありますが、基本的な記述方法自体はプロパティといっしょなので合わせて覚えてしまうことをおすすめします。