下記のVBAのソースコードを見て下さい。
Dim X As New SampleClass
Dim Y 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.Cells(1, 1).Value
「Sheet1」はWorksheetクラスの生成済みオブジェクト。
「Range」や「Cells」はWorksheetクラスのプロパティになります。
実はRangeとCellsはプロパティ名が違うだけで、同じクラスで作られています。
定義を見てみると下記のようになっています。
Property Cells As Range
Property Range(Cell1, [Cell2]) As Range
Property Range(Cell1, [Cell2]) As Range
よって、RangeもCellsも同じプロパティ、メソッドを保有している事になります。
「Value」はRangeクラスのプロパティになります。
定義は下記のとおりです。
Property Value([RangeValueDataType])
クラスは苦手、という方も多い事でしょう。
しかし、クラスとはプロパティやメソッドの集合体なだけです。
クラスを理解するには、各プロパティ、各メソッドの仕様を理解する事、つまりは「定義」を読めるようになる事が近道です。
Property プロパティ名(引数) As データ型
プロパティはこのように定義されます。
Excel VBAセミナーテキスト 2010/2007/2003対応の93ページに定義に関する詳細を記載していますので、合わせて勉強してみて下さい。
(担当:奥田 英太郎)