オブジェクト、プロパティ、メソッドの概念

スポンサーリンク

オブジェクトとは

オブジェクトとはブックやシート、セルなどVBAから操作可能な “もの” の総称です。オブジェクトにはプロパティとメソッドと呼ばれるものが備わっており、プロパティはオブジェクトの情報を取得・設定するもの、メソッドはオブジェクトに命令を与えるものになります。プロパティとメソッドを合わせてメンバと言ったりします。

ここでは例としてRangeオブジェクトのプロパティとメソッドの一部を解説します。プロパティやメソッドはオブジェクト名とドット”.” で結合して記述します。

Rangeオブジェクトのプロパティ例

Rangeオブジェクトのプロパティの一例
プロパティ 説明
Value 値の取得・設定
Row 行の取得のみ(※)
Column 列の取得のみ(※)

プロパティには値の取得のみ可能で、値の設定ができないものがあります。

  • A1セルに値を設定する例
    Sub test1()
        Range("A1").Value = "Hello!!"
    End Sub
  • A1セルの値を取得し、その値をメッセージボックスに表示する例
    Sub test2()
        MsgBox Range("A1").Value
    End Sub

Rangeオブジェクトのメソッド例

Rangeオブジェクトのメソッドの一例
メソッド 説明
Clear 値・数式・書式・コメントのクリア
Delete セルの削除
Copy セルのコピー
  • A1セルの値・数式・書式などをクリアする例
    Sub test3()
        Range("A1").Clear
    End Sub

コレクションとオブジェクトの関係

複数のオブジェクトの集合体をコレクションと呼びます。コレクションにもプロパティとメソッドが備わっています。コレクションは頂点をApplicationオブジェクトとする階層構造になっています。

オブジェクト・コレクションの階層構造
オブジェクト・コレクションの階層構造

コレクションの例

コレクションの一例
コレクション 説明
Workbooks ワークブックオブジェクトの集合体
Worksheets ワークシートオブジェクトの集合体
Cells セルオブジェクトの集合体
Range セルオブジェクトの集合体
※”Cells”とは参照方法が異なる。
Shapes 図形オブジェクトの集合体
Charts チャートオブジェクトの集合体

Worksheetsコレクションのプロパティ例

Worksheetsコレクションのプロパティの一例
プロパティ 説明
Count シート数の取得のみ
  • Worksheetオブジェクトの数を取得し、その値をメッセージボックスに表示する例
    Sub test4()
        MsgBox Worksheets.Count
    End Sub

Worksheetsコレクションのメソッド例

Worksheetsコレクションのメソッドの一例
メソッド 説明
Add 新規シートの追加
  • 新規シートを追加する例
    Sub test5()
        Worksheets.Add
    End Sub

コレクションの中からオブジェクトを選択

コレクションにインデックスや名前を指定することでオブジェクトを選択することができます。これを繰り返して目的のオブジェクトまで順にたどっていき、最後にプロパティやメソッドを指定することで、目的のオブジェクトの情報を取得したり、操作したりすることができます。

  • インデックスでセルを選択し、値を設定する例
    Sub test6()
        Workbooks(1).Worksheets(1).Cells(1, 2).Value = "Hello!!"
    End Sub
  • 名前でセルを選択し、値を設定する例
    ※それぞれの名前に対応するブック、シート、セルが存在していることが前提となります。
    Sub test7()
        Workbooks("VBA入門.xlsm").Worksheets("Sheet1") _
                                     .Range("MSG").Value = "Hello!!"
    End Sub

半角スペース+アンダースコアは複数行を1行とみなす効果があります。1行のコードが長くなる場合は適度な個所で使用すると、コードの可読性が向上します。

コレクションの省略

ブック、シートなど上位階層のオブジェクトは省略することができます。この場合、マクロ実行時にアクティブになっているオブジェクト(最前面に表示されているブック・シート)が操作の対象となります。

  • ブック、シートを省略したコード
    Sub test8()
        Cells(1, 1).Value = "Hello!!"
    End Sub
  • 上記test8と同等の処理で、ブック、シートを省略しないコード
    Sub test9()
        ActiveWorkbook.ActiveSheet.Cells(1, 1).Value = "Hello!!"
    End Sub

 Worksheetsコレクションの使用例

タイトルとURLをコピーしました