この記事では、マクロを読む上で最も重要な「オブジェクト」「プロパティ」「メソッド」について、その概念と構文についてじっくり解説します。

ExcelVBAのプログラム仕様に沿って厳密な解説をしようとすると、一気にあれもこれも覚える必要がでてきてしまうため、ここでは、少しずつ解きほぐす形で解説を進めます。今回の疑問は次回の解説で解決し、徐々に全体像が見えてくると思います。ゆっくりお付き合い頂ければと思います。

オブジェクトとは

ExcelVBAでは、操作する対象のことを「オブジェクト」と呼びます。操作する対象は、Excelの部品や概念、機能などです。したがって、オブジェクトとは、ワークシート(Excelの部品)や、印刷のページレイアウト全体(Excelの概念)、ピボットテーブル(Excelの機能)などを総称した言葉と考えてください。


重要な3つのオブジェクト

Excelファイルは「ブック」と呼ばれます。ブックの中には複数の「ワークシート」があり、ワークシート上には、データや関数を入力する「セル」があります。たくさん存在するオブジェクトのうち、これら「ブック」「ワークシート」「セル」は、Excelを構成する重要なオブジェクトです。

これら3つのオブジェクトは、マクロ記録で作成されたVBAプログラム上で次のように記述されています。

■ブック:Workbookオブジェクト
例)ActiveWorkbook
→ アクティブ(操作対象の)ブックを表している
■ワークシート:Worksheetオブジェクト
例)Sheets("4月売上")
→ ワークシート「4月売上」を表している
■セル:Rangeオブジェクト
例)Range("B4")
→ セルB4を表している
※厳密に言うと、Worksheetオブジェクトは「Worksheets("4月売上")」と記述すべきなのですが、ここではマクロ記録による記述「Sheets("4月売上")」で解説しています。
※ブックの上書き保存などをマクロで記録すると、Workbookオブジェクトの操作として記述されますが、ブックを切り替える操作をマクロで記録すると、Windowオブジェクトの操作として記述されます。Windowオブジェクトについても追々紹介したいと思います。


オブジェクト名に続いて、カッコの中に、操作される具体的なオブジェクトの名前が、ダブルクォーテーションで囲まれて記述されています。なお、オブジェクト名に「s」がついていることについては、次の機会に解説します。
※「Sheets」について、ここでは「オブジェクト名に『s』がついているもの」と紹介していますが、正確にいうと、「Sheets」は「コレクション名」です。コレクションについても、次の機会に解説します。


VBAの中心的なステートメント

マクロ記録で作成されるExcelVBAのステートメント(プログラムを構成する1行の命令文)は、「オブジェクトを操作するステートメント」が中心となります。オブジェクトはExcelの部品や機能、概念を表しているわけですから当然といえば当然ですね。そして、オブジェクトを操作するステートメントは、主に「プロパティが関わるステートメント」と「メソッドが関わるステートメント」に分けられます。


>まずは、プロパティが関わるステートメントからです!