オブジェクト
■概要
VBAにおけるオブジェクトとはクラスや
Excel本体、ワークブックやワークシート、セルもオブジェクトとして扱われています。
ワークシートなどのExcel特有のオブジェクトは階層構造になっており、
Excel本体を最上位として成り立っています。
上の図では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を使用するとオブジェクトの持つプロパティやメソッドに対して
オブジェクト名を記述しなくてもアクセスすることが可能となります。