ExcelVBAの理解していないとコード記述できない、オブジェクト、プロパティ、メソッドについて解説します。
Excel VBA オブジェクト、プロパティ、メソッドとは
オブジェクト
オブジェクトは、Excel内の要素やデータを操作するための対象を指します。
Excelシート、ワークブック、セル、グラフなど、Excel内のあらゆるものがオブジェクトとして扱われます。
各オブジェクトにはそれぞれ特定の性質や機能(プロパティとメソッド)があり、それらを使用してデータの操作や処理を行います。
例えば、ワークブックはExcelファイル全体を表し、シートはExcelのページ、セルは表内の1つの箱を示します。
それぞれのオブジェクトには、その状態や属性を示すプロパティ(色や値など)と、特定の動作や処理を行うためのメソッド(コピー、挿入、値の設定など)があります。
オブジェクトは、Excel内の要素を操作するための道具で、その要素ごとに異なる性質や機能を持っています。オブジェクトを操作することで、Excelデータの変更や処理を効果的に行うことができます。
プロパティ
プロパティは、オブジェクトが持つ特性や属性を表します。
セルオブジェクトの場合、色やフォント、値などがプロパティとして扱われます。これらのプロパティを操作することで、セルの色を変えたり、値を設定したりできます。
プロパティはオブジェクトの特定の側面や状態を表し、その特性を変更することができます。たとえば、セルのフォントサイズや背景色などがそのオブジェクトのプロパティです。
メソッド
メソッドは、オブジェクトが行う特定のアクションや動作を実行するための手段です。これは、オブジェクトに対して特定の命令を与え、それに従って何かを行うよう指示するものです。
つまり、メソッドはオブジェクトが行う特定の動作をさせる起動するスイッチのようなものです。
オブジェクト:ピザ
プロパティ:ピザの具材(チーズ、トマトソース、ベーコン、ピーマンなど)
メソッド:ピザの調理手順(生地を伸ばす、トッピングをのせる、オーブンで焼くなど)
ピザは料理(オブジェクト)で、具材はプロパティ、そして調理手順はメソッドに相当します。各具材(プロパティ)を追加したり、調理手順(メソッド)を実行することで、最終的に完成したピザ(オブジェクト)が得られます。
Excel VBA オブジェクト、プロパティ、メソッドの使い方
新しいシートを作成し、セルに値をセットし、シートをコピーすることで、オブジェクト、プロパティ、メソッドの使用例を下記に示します
Sub CookingExcel()
' シートオブジェクトの作成
Dim myPlate As Worksheet
Set myPlate = ThisWorkbook.Sheets.Add
' シートの属性(プロパティ)の変更
myPlate.Name = "MainCourse" ' シート名を変更
' シートに値をセットする(料理の盛り付け)
myPlate.Range("A1").Value = "Bon Appétit!" ' セルA1に値を設定
' シートの操作方法(メソッド):シートをコピーする(料理の調理手順)
myPlate.Copy After:=Sheets(Sheets.Count) ' シートをコピーして最後に配置
End Sub
新しいシート(お皿)を作成し、その属性(シート名の変更)、プロパティ(シート名)、そしてメソッド(`Copy`メソッド)を使ってシートを操作しています。
Sheets("Sheet1").Copy After:=Sheets(Sheets.Count)
この例では、"Sheet1"というシートをコピーし、そのコピーを最後のシートの後ろに挿入します。Copyメソッドには、シートをどこに挿入するかを指定するAfterというオプション引数があります。
この引数は、挿入先のシートを指定するために使われます。このように、メソッドは特定のオブジェクトに対して特定の操作を行うものです。
ポイント
- オブジェクトは、Excel内の要素やデータを操作するための対象
- プロパティは、オブジェクトが持つ特性や属性を表す
- メソッドは、オブジェクトが行う特定のアクションや動作を実行するための手段
ExcelVBAにおけるオブジェクトの階層構造は、次のようなイメージです。
Excelファイル全体(ブック)が最上位にあり、その中に複数のシート(シート)があります。そして、各シートにはセル(セル)が含まれています。
例えば、Excelファイル全体を考えると、それは1つのブックです。そのブックには複数のシートがあり、各シートには行と列によって構成されたセルがあります。このように、ExcelVBAでは、ブック内のシート、そしてシート内のセルといった階層構造が存在します。
オブジェクトの階層構造は、VBAコードをより簡潔にし、読みやすくするために省略されることがあります。例えば、特定のブックの特定のシートの特定のセルにアクセスする場合、完全な階層構造を書く代わりに、ブックやシートを省略し、直接セルにアクセスすることができます。
この省略を利用することで、コードをより簡潔にし、理解しやすくすることができます。ただし、省略しすぎるとコードが読みづらくなる場合があるため、バランスを取りながら適切に省略することが重要です。
Excel VBAのコレクションは、複数のオブジェクトをまとめたグループのようなものです。これにより、複数のオブジェクトを一括管理できます。
例えば、ワークブック内の全てのシートを管理したり、セル範囲の全てのセルを扱ったりすることができます。
コレクションには、要素が順番に並んでいるもの(インデックスでアクセス可能なコレクション)や、名前によって要素にアクセスするもの(キーでアクセス可能なコレクション)などがあります。これらのコレクションは、データの組織化や処理の効率化に役立ちます。
「Workbook」と「Workbooks」の違いを理解するために、コレクションを例にします。
図書館でたとえると、図書館全体が「Workbooks」であり、個々の本は「Workbook」に相当します。
Workbooks(図書館)は多くのWorkbook(本)を持っており、それぞれのWorkbookは1つの本を表しています。WorkbooksはWorkbookのコレクションと言えます。
※図書館に本が一冊でもコレクションです
Excelのシート番号は、シートの順序によって割り当てられる番号です。たとえば、一番左にあるシートが1番目、その次が2番目というように、左から右へ順に番号が振られます。この番号はシートの操作や特定のシートにアクセスする際に使用されます。
※シートが非表示でも、シート番号に変更はありません
Excel VBAのスキルを身につけて、仕事の効率化に貢献しませんか? 当サイトでは、Excel VBAエキスパート認定資格取得に向けた情報を提供しています。興味がある方は、ぜひ以下の問題集からチャレンジしてみてください。 ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。