オブジェクト

■概要

VBAにおけるオブジェクトとはクラスや
Excel本体、ワークブックやワークシート、セルもオブジェクトとして扱われています。
ワークシートなどのExcel特有のオブジェクトは階層構造になっており、
Excel本体を最上位として成り立っています。

	tool_0025

上の図ではExcel本体からCellまで一直線になっていますが、
1つだけしかないのはExcel本体のみでワークブックやワークシート、セルは複数存在します。
Excelのデータの最小単位がセルで、複数のセルを管理しているのがワークシートとなり、
ワークシートを管理しているのワークブックでワークブックを管理しているのがExcel本体となります。
Applicationオブジェクトから階層をたどる事で目的のオブジェクトに到達できます。

■プロパティ

プロパティとはオブジェクトに設定されている属性情報のことです。
プロパティの値を変更することにより、そのオブジェクトの見た目や性質が変化します。
		
	例:
		WorkSheets("Sheet1").Cells(1,1).Value = 1

上の例ではWorkSheets("Sheet1")オブジェクトのCellsオブジェクトの
Valueプロパティに1を設定しています。
もう少し詳細に書くと、まず「WorkSheets(シート名)」でワークシートオブジェクトを取得し、
「Cells(列, 行)」でセルオブジェクトを取得、最終的に取得したセルオブジェクトの
Valueプロパティに対して1を設定しています。
このようにプロパティはオブジェクトの情報を変更することができます。

■メソッド

メソッドオブジェクトに変化をもたらす機能です。
使用方法はプロパティと同じように「オブジェクト.メソッド名」でメソッドが動作します。

	例:
		WorkSheets("Sheet1").Cells(1,1).Select

上の例ではWorkSheets("Sheet1")オブジェクトのCellsオブジェクトのSelectメソッドを起動しています。
Selectメソッドは指定したセルを選択状態にします。
このようにオブジェクトに変化を与えるメソッドが各オブジェクトにいくつも設定されています。
C++やJavaを理解している方は

	「オブジェクト = クラス」
	「プロパティ = メンバ変数」
	「メソッド = メンバ関数」

と考えると分かりやすいと思います。

■Set

オブジェクト変数を代入する場合「Setステートメント」が必要となります。

●書式
	・書式例
		Set 変数 = 代入値

	・具体例
		Dim ws As WorkSheet

		Set ws = WorkSheets("Sheet1")

	WorkSheetやWorkBook、Cell等のオブジェクト変数の代入は「Set」が必須ですので、
	忘れないように行ってください。

■With

Withステートメントは同じオブジェクトに対して処理を行う場合に使用します。

●書式
	・書式例
		With オブジェクト名
			処理1
			処理2
			処理3
		End With

	・具体例
		With Worksheets("Sheet1").Cells(1, 1)
 			.Activate       ' アクティブ(選択中)にする
			.Value = "赤"   ' 値
			With .Font
				.ColorIndex = 3 ' 色番号3番を使用
			End With
		End With

	Withを使用するとオブジェクトの持つプロパティやメソッドに対して
	オブジェクト名を記述しなくてもアクセスすることが可能となります。