Excel VBAマクロのオブジェクトとプロパティ

今回は、Excel VBAをより深く理解するためにオブジェクトとプロパティについてまとめます。

VBAでのオブジェクト

VBAVBの派生系ですから、手続き型言語です。
ですので、厳密には、オブジェクト指向言語とは異なりますが、
短時間で有効なコーディングをする上でこの違いは特に認識する必要は内容に思います。

オブジェクトとは何か

  • VBAでは、操作対象となる全てのものがオブジェクト

例えば

    • セルはRangeオブジェクト
    • ワークシートはWorkSheetオブジェクト
    • ブックは、Workbookオブジェクト
    • Excel自体もオブジェクトで、Applicationオブジェクト

プロパティとは何か

  • プロパティは、日本語で言うと「属性」
  • [Object].[Property]でオブジェクトのプロパティにアクセス出来る

例えば、

たかし君は「人間オブジェクト」
たかし君の身長を知りたいとする
「人間オブジェクト」は「身長プロパティ」を持っている
つまり、"たかし君.身長"でたかし君の身長を取得することができる

このようなイメージ
実際のExcelでの、例を見てみる

Range("A1").Column ' => 1

Rangeオブジェクトには、列の情報を格納する属性があり、Columnという

プロパティは出力のみではない

例えば

  • RangeオブジェクトにValueプロパティがある
  • Valueプロパティは値を司る
    • 出力
a = Range("A1").Value
' aという変数にA1セルの値を出力している
    • 入力
Range("A1").Value = "テスト"
' A1セルの値に"テスト"という文字列を入力している

(大概のプログラミング言語がそうであるが)VBAでは、左辺に右辺から値を代入するという記法を採用している


ちなみに、詳細なプロパティはVBEを立ち上げてウォッチ式で見ることが出来る☆


やさしくわかるExcel関数・マクロ 改訂版 (Excel徹底活用シリーズ)

やさしくわかるExcel関数・マクロ 改訂版 (Excel徹底活用シリーズ)