Home » エクセルマクロ・Excel VBAの使い方 » プロパティは2種類ある

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

Excel VBAの学習をはじめた頃の、昔の自分に伝えたいことがいくつかあります。

そのひとつがプロパティは2種類に分類できること。
そして、その一方は比較的簡単に理解できるけれど、もう一方は理解するのにちょっと時間がかかる、ということです。

2種類のプロパティとは、

  • 単なるデータを取得するプロパティ
  • オブジェクトを取得するプロパティ

です。

[スポンサードリンク]

単なるデータを取得するプロパティ

単なるデータを取得するプロパティは理解しやすく、実は、こちらの解説しか行っていないExcel VBA入門書籍が(残念ながら)たくさん存在しています。

例えば、
 MsgBox Range("A1").Value
を実行するとA1セルの値がメッセージボックスに表示されます。
このValueが単なるデータを取得するプロパティの代表です。

その他、
 RangeオブジェクトのTextプロパティ
 RangeオブジェクトのFormulaプロパティ
 RangeオブジェクトのNumberFormatLocalプロパティ
 RangeオブジェクトのRowプロパティ
 RangeオブジェクトのColumnプロパティ
 WorksheetオブジェクトのNameプロパティ
 WorksheetオブジェクトのVisibleプロパティ
 WorkbookオブジェクトのNameプロパティ
 WorkbookオブジェクトのPathプロパティ
 ApplicationオブジェクトのDisplayAlertsプロパティ
などが、単なるデータを取得する(一部は設定もできる)プロパティです。

単純な代入文で、変数にデータを代入できます。

オブジェクトを取得するプロパティ

これに対して、オブジェクトを取得するプロパティは、理解するのに少し時間がかかります。

先ほどの、
 MsgBox Range("A1").Value
のRangeがオブジェクトを取得するプロパティの代表です。

その他、
 ActiveCellプロパティ
 Cellsプロパティ
 Rowsプロパティ
 Columnsプロパティ
 RangeオブジェクトのEndプロパティ
 RangeオブジェクトのOffsetプロパティ
 RangeオブジェクトのCurrentRegionプロパティ
 ActieSheetプロパティ
 Sheetsプロパティ
 Worksheetsプロパティ
 Chartsプロパティ
 ActiveWorkbookプロパティ
 Workbooksプロパティ
 ActiveWindowプロパティ
 Applicationプロパティ
などが、オブジェクトを取得するプロパティです。

そして、これらのプロパティの戻りを変数に代入するときには、Setキーワードが必要です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » プロパティは2種類ある

TrackBack:4

TrackBack URL
Rangeはオブジェクト?プロパティ? from インストラクターのネタ帳
Excel VBAで、変数宣言に登場する「Range」はオブジェクトで、実際に処理を行う部分に登場する「Range」はプロパティです。
Endプロパティを使ってセル範囲を取得する from インストラクターのネタ帳
Range.Endプロパティを使ってセル範囲を表すRangeオブジェクトを取得するには、Rangeプロパティを利用します。
Cellsオブジェクトは存在しない from インストラクターのネタ帳
Excel VBAにCellsという名前のオブジェクトは存在しません。コード内でよく見かけるCellsはRangeオブジェクトを返すプロパティです。
ウォッチ式に変数でないものを from インストラクターのネタ帳
ウォッチウィンドウで変数以外を確認するにはウォッチ式に何を登録すればいいのかを解説しています。

Home » エクセルマクロ・Excel VBAの使い方 » プロパティは2種類ある

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.