投稿日時:

下記のVBAのソースコードを見て下さい。

Dim X As New SampleClass
Dim Y As New SampleClass

オブジェクト変数「X」もオブジェクト変数「Y」も同じクラス「SampleClass」で作られています。
よってXもYも同じプロパティ、メソッドを保有している事になります。

では、次のソースコードを見てみましょう。
ExcelのVBAでよく見られるものです。

Sheet1.Range(“A1″).Value
Sheet1.Cells(1, 1).Value

「Sheet1」はWorksheetクラスの生成済みオブジェクト。
「Range」や「Cells」はWorksheetクラスのプロパティになります。

実はRangeとCellsはプロパティ名が違うだけで、同じクラスで作られています。
定義を見てみると下記のようになっています。

Property Cells As Range
Property Range(Cell1, [Cell2]) As Range

よって、RangeもCellsも同じプロパティ、メソッドを保有している事になります。

「Value」はRangeクラスのプロパティになります。
定義は下記のとおりです。

Property Value([RangeValueDataType])

クラスは苦手、という方も多い事でしょう。
しかし、クラスとはプロパティやメソッドの集合体なだけです。
クラスを理解するには、各プロパティ、各メソッドの仕様を理解する事、つまりは「定義」を読めるようになる事が近道です。

Property プロパティ名(引数) As データ型

プロパティはこのように定義されます。
Excel VBAセミナーテキスト 2010/2007/2003対応の93ページに定義に関する詳細を記載していますので、合わせて勉強してみて下さい。

(担当:奥田 英太郎