このページでは、VBAの基礎概念となる「オブジェクト」「プロパティ」と「メソッド」について解説します。
簡単に説明すると、プロパティはオブジェクトの「性質」「属性」のことであり、メソッドはオブジェクトの「動作」「処理」のことを指し示します。
本ページでは、VBAコーディングの前提となる「オブジェクト」「プロパティ」「メソッド」の意味と違いを初心者向けに分かりやすく解説します。
- オブジェクトとは何か?
- プロパティとメソッドの違い
- プロパティとメソッドを用いたコーディング例
VBAをマスターするためには、理解必須の超・重要知識ですので是非最後までご覧ください。
VBA:オブジェクトとは?
VBAにおける「オブジェクト」とは、ワークブック(Workbook)/ ワークシート(Worksheet)/ セル(Cell)など目に見えるExcelの部品のことです。
オブジェクト:object を日本語に直せば「物・物体」という意味になります。
名称 | オブジェクト名 |
---|---|
アプリケーション | Application |
ワークブック | Workbook |
ワークシート | Worksheet |
セル | Range |
オブジェクトは階層構造になっています。すなわち、最上位を「アプリケーション」として、その下に「ブック」、さらにその下に「シート」、最下位に「セル」が位置づけられます。
実際に、Excelのセルやブックなどを触ったことがある人がほとんどだと思うので、なんとなくイメージはつきやすいはずです。この目に見える対象物がVBAの「オブジェクト」です。
オブジェクトは「ロボット」
「プロパティ」と「メソッド」は、どちらも「オブジェクト」を構成する要素です。
初心者の方(オブジェクト指向って何?)ほど、この点を理解するには少々時間がかかります。分かりやすい例として、このページではオブジェクトをロボットに例えて「プロパティ」「メソッド」を説明します。
プロパティ:ロボットの「属性」
プロパティは、ロボットに例えて説明すれば、「名前」とか「色」とか「大きさ」などになります。
すなわち、プロパティとは「オブジェクトの属性」です。
早速プロパティの一例として「Value」を確認してみましょう。Rangeオブジェクトの「Value」は「セルの値」を表します。
Range("A1").Value
Range("A1")がオブジェクト、Valueがプロパティです。
Range("A1").Value = "Hello World"
RangeオブジェクトのValueプロパティに「Hello World」を代入すれば、A1セルの値が「Hello World」となります。
以下のサンプルコードでは、RangeオブジェクトのValueプロパティを利用して、値の代入処理を行っております。
Sub test001() Dim sWR As Range, sample As String Set sWR = Range("A1") sWR.Value = "Hello World" `プロパティの値を変数「sample」に代入 sample = sWR.value End Sub
Valueの他にも、様々なプロパティが存在します。
代表的なものをいくつか以下に例示します。オブジェクトによって、プロパティの意味も少しずつ異なりますが、ここでは「プロパティ」のイメージをなんとなく掴むことができればOKです。
プロパティ | 内容 |
---|---|
Value | セルの値 |
Width | セルの幅 |
Font | セルのフォント |
・・・ | ・・・ |
メソッド:ロボットの「動作」
プロパティが「オブジェクトの属性」であったのに対して、メソッドは「オブジェクトの動作」です。
ロボットで説明すれば「動く」とか「走る」とか「座る」とか、具体的な処理内容が「メソッド」です。
プロパティ ⇒ 属性情報:名前、色、大きさなど
メソッド ⇒ 処理内容:選択する、コピーする、閉じるなど
メソッド:Method をそのまま日本語に直すと「方法」という意味になりますが、イメージとしては「動作」「処理」と理解しておくと良いでしょう。
Range("A1").Select
Range("A1")がオブジェクト。Selectが「メソッド」です。Rangeオブジェクトはあらかじめ「Select」という動作が定義されているので、この構文を書けばセルA1にカーソルが当たった状態になります。
構文ルール:プロパティ/メソッド
メソッド
Range("A1").Select
オブジェクト
Range("A1").Value
オブジェクトとメソッドの呼び出しは、ここまで見てきた通り「オブジェクト.メソッド」「オブジェクト.プロパティ」のように、オブジェクト名の後ろに指定するだけでOKです。
プロパティ/メソッドは暗記すべき?
どのようなメソッドがあるか、どのようなプロパティがあるか。よく使うものであれば、暗記しておくのも良いですが、全てを知っておくのは99%不可能です。
実際には、「こんなメソッドないかな?」と疑問に感じた時に、Googleで検索するのがおすすめです。
オブジェクトって何?プロパティって何?メソッドって?基本の理解さえできていれば、都度Webで情報を補完しながらをコーディングしていければOK。
0からプログラミングを学びたい方は
プログラミングをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。
そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。