プロパティとは

プロパティはオブジェクトの性質を表すもの、あるいはオブジェクトの性質を設定するものです。たとえばColumwidthは「列幅」を表すプロパティ。このプロパティに「5」を設定すれば、列幅は半角5文字ぶんになります。

サンプルプログラム

B列~I列の幅を半角5文字ぶんにして、現在のセルの高さを表示する

Sub 列幅を変更()
 Range ("B:I") . columnwidth = 5 '列幅を5文字分に設定する・・・①
 MsgBox Range ("A1") . RowHeight 'セルA1の高さが表示される・・・②
End Sub
目次

プロパティとは

プロパティとは、オブジェクトの性質を設定/取得するものです。たとえばColumnWidthは「列幅を何文字ぶんにするか」を設定するプロパティ、RowHeightは「行の高さ」を表すプロパティ、Valueは「セルの値」を表すプロパティです。

どのようなプロパティを持つかはオブジェクトの種類ごとに異なりますが、複数のオブジェクトに同じ名前のプロパティが存在することになります。たとえば多くのオブジェクトが名前をNameプロパティを持っています。

サンプルプログラムの①では、RangeオブジェクトのColumnWidthプロパティに値を代入することで列幅を設定しています。

プロパティはオブジェクトに続けて、間に「.」(ピリオド)をつけて記述します。

オブジェクト.プロパティ

     ↑(間にピリオドを入れる)

またプロパティから、現在設定されている値を取得することもできます。②では、RowHeightプロパティからセル「A1」の高さを取得して、MsgBox関数で表示しています。プロパティには、その値が「設定だけできるもの」と「取得だけできるもの」、そして「設定、取得の両方できるもの」があります。Excelにはたくさんのオブジェクトがあり、1つ1つのオブジェクトがたくさんのプロパティを持っています。オブジェクトとそのプロパティごとに、何が設定でき、何が取得できるかが決められています。

オブジェクトを指定する方法

「Range(“A1”)」と書くことで「セル「A1」を表すオブジェクト」が取得できるような気がしますよね。それはそれで正しいのですが、話はもう少し複雑でして、実は「Range(”A1”)」はプロパティなのです。Excelは「Rangeプロパティ」を使って「Rangeオブジェクト」を取得しているのであって、「Range(”A1”)」そのものがオブジェクトというわけではありません。

つまり、「Range(~).ColumnWidth = 5」では、Rangeプロパティを使ってRangeオブジェクトを取得して、そのRangeオブジェクトが持つColumnWidthプロパティに「5」という値を設定しているということになります。

ではRangeプロパティはどのオブジェクトの持ち物かというと、Worksheetオブジェクトです。実はこの場合、Worksheetオブジェクトの指定が省略されているのです。

本来オブジェクトを指定する場合、最も上位に位置するApplicationオブジェクトから順番に「.」(ピリオド)でつなげて記述します。たとえばブック「Book1.xlsx」の、ワークシート「Sheet1」の、セル「A1」は次のように記述します。

Application.Workbooks(“Book1.xlsx”).Worksheets(“Sheet1”).Range(“A1”)

上の例では「ApplicationオブジェクトのWorkbooksプロパティからWorkbookオブジェクトを取得」、「WorkbookオブジェクトのWorksheetsプロパティからWorksheetオブジェクトを取得」・・・というような面倒な処理をExcelはしているのです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次