最初にこれだけは

オブジェクトとは

 これからお話しすることは、VBAの根幹をなす用語の説明です。
大切な内容です。

しかし初心者にはイメージしずらい用語でもあります。

「オブジェクト」とそれに関連する「プロパティ」と「メソッド」についてお話しします。

一通り読んでいただき、今わからなくても心配はいりません。
今後勉強していく過程で時折読み返していただければ理解できてきます。

オブジェクト

「オブジェクト (Object)」とは英和辞典によれば、「物体」「物」「対象」と書かれています。

Excel VBAを解説するうえでも頻繁に出てくる用語です。
VBAでも、ずばり「対象物」です。

Excel ですから、Workbook(ワークブック)、Worksheet(ワークシート)、Cell(セル)といったものが 「オブジェクト」 になります。

その前にExcel本体も “Application” というオブジェトです。

 Excel にはブックがあり、その下にシートがあり、その中に多くのセルがあり、一つ一つにセル番号が振られています。

つまり階層構造になっています。
目的のセルに何かの動作をさせたい場合は、上から順にオブジェクトを指定していくわけです。

そのオブジェクトとオブジェクトの間は「. (ドット、ピリオド)」でつなぎます。
この「. (ドット、ピリオド)」を「ドット演算子」といいます。
※まだこの言葉までは覚えなくて大丈夫です。

つまり

このような構造になっており、この間を「. (ピリオド)」でつなぎます。

Workbooks(”kanri.xlsm”).Worksheets(“Sheet1”).Range(“A1”)
オブジェクト.子オブジェクト.孫オブジェクト の並びになります。

マクロの基本は、ある対象物にある仕事をするよう命令を下すことです。
その対象物が特定されなければ、命令の下しようがないわけです。

「我が家の2階」.「エアコン」.「スイッチ」. ONにする
オブジェクト.子オブジェクト.孫オブジェクト.命令

プロパティ

 「プロパティ」とは、「属性」とか「特性」という意味です。
オブジェクトの状態や値を設定したりします。

例えば
ここに1台の車があるとします。

車 ー 色
  ー タイプ(乗用車、トラックなど)
  ー 排気量(2000ccなど)
  ー 年式

このように車もそれそれ特性が異なります。
「車検証」はいわばプロパティの集まりみたいなものですね。

◆ Excel のプロパティ記述例
  Range(“A1”).Value
  セル1の値

  Range(“B5”).Font.FontSize
  セルB5の文字サイズ

  Range(“C8”).Interior.ColorIndex
  セルC8の背景色

Sub Cell_Shitei()

Worksheets(“Sheet1”).Range(“C5”).Value=500

End Sub

このように書けば
「Sheet1 C5 セルの 値 は 500 」という意味です。
「. (ドット、ピリオド)」は「の」と読むとわかりやすいです。

ただし、「Value」は記述を省略することが許されています。
上記の場合

Sub Cell_Shitei()
  Worksheets(“Shitei1”).Range(“C5”)=500
End Sub

このように書いても結果は同じです。

メソッド

「メソッド」とはオブジェクトの動作を意味します。

「〇〇をしろ」という命令と考えた方がわかりやすいかもしれませんね。
つまり、オブジェクトに与える命令です。

例えば

車 ー 「動け」
  ー 「止まれ」

このようにイメージすればわかりやすいです。

たとえば Excel の場合、指定したセルに対し、「削除しろ」「コピーしろ」「貼り付けしろ」 といった命令を意味します。

この場合も、オブジェクトとメソッドの間は「. (ドット、ピリオド)」でつなぎます

Sub Sentaku()
Worksheets(“Sheet1”).Range(“A1”).Select
End Sub

このように書けば、
「Sheet1 のA1セル選択しなさい」という意味になります。

メソッドの場合、「. (ドット、ピリオド)」は「を」と読むとわかりやすいです。

メソッドには「引数」というものがつく場合があります。

例えば
車 ー「曲れ」
と命令もできますが、「右に? それとも左?」ということにもなります。

そこで
車 ー「曲れ」方向:=”右”
という記載をして、「右に曲がれ」と指示します。

つまり「方向」 これが引数です。
そしてその引数に値を設定するときに記号「:=」がつくことは覚えておいてください。

引数は複数設定することができます。
そのときは「, (コンマ)」で区切ります。

車 ー「曲れ」方向:=”右” , 速度:=”ゆっくり”
というような記載です。

Sub “Hozon”()
Workbooks(“Book1″).Close fileName:=”売上台帳” , SaveChanges:=True
End Sub

「Excel ファイル(Book1) を「売上台帳」のファイル名で保存して閉じなさい
ということになります。

この場合は引数が2つあるということになります。
この順番は変えても処理は同じです。

まとめ

 Excelでいう「オブジェクト」は、対象となる Book や Sheet、セルなどをさします。
VBAで何かの操作をさせようとする際の対象物ということです。

「プロパティ」はオブジェクトが持っている性質を表すデータということになります。

「メソッド」はオブジェクトに対し、動作・操作の命令のことです。
引数を必要とするものもあります。

プロパティは「名詞」と捉えるのに対し、メソッドは「動詞」と捉えることもできます。

これら「オブジェクト」「プロパティ」「メソッド」といった用語は絶対に覚えなければならないということはありません。
今後マクロを作っていく過程で、次第に理解が深まり、自然に記憶に残ってきます。

この言葉を知らなくてもマクロVBAは書けますので安心してください。