Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » Excel VBAのRowsとRowの違い

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

「vba rowプロパティ rowsプロパティ」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。

Excel VBA(Visual Basic for Applications)で登場する、
 Rowプロパティ
と、
 Rowsプロパティ
の違いについて調べている方による検索キーワードでしょうか。

[スポンサードリンク]

RowプロパティとRowsプロパティの違い

結論から言うと、
 Row
   行番号を表す整数を返すプロパティ
 Rows
   を表すRangeオブジェクトを返すプロパティ
です。

結論としてはこれだけですが、Microsoftが、もう少し名前の付け方を考えていてくれたら、混乱する人が少なくて済んだであろうとは思います。
Rowプロパティは、例えば、RowNumberといった名前にしておいてくれたら、良かったように、私は感じます。

RowとRowsの違いをオブジェクトブラウザーで確認する

オブジェクトブラウザーで、RangeオブジェクトのRowプロパティの詳細ペインを確認すると、下図のように「As Long」と整数値を返すことが明記され、

RowsとRowの違い

ApplicationオブジェクトのRowsプロパティの詳細ペインを確認すると、下図のように「As Range」とRangeオブジェクトを返すことが明記されています。

RowsとRowの違い

書かれるオブジェクト式の特徴

.Rowの前は必ずRangeオブジェクト

完全一致条件で、Excelライブラリーを検索してみると、「Row」は、Rangeオブジェクトにだけ存在していますから、

RowsとRowの違い

「.Row」の前は、必ず、Rangeオブジェクトを返すオブジェクト式か、Rangeオブジェクトのセットされたオブジェクト変数になります。

.Rowsの前はさまざまな可能性

これに対して「Rows」のほうは以下のようにいくつかのオブジェクトに用意されているので、

RowsとRowの違い

「.Rows」の前は、いろいろなケースが考えられます。

また、グローバルメンバーでもあるので上位のオブジェクト式を省略して、

RowsとRowの違い

いきなり「Rows」と書かれることもあり得ます。

.Rowの直後に何か書かれることはあり得ない

また、Rowプロパティはデータを返すオブジェクト式ですから、「.Row」の直後にオブジェクト式が続くことはあり得ません。

これに対しRowsプロパティはオブジェクトを返すオブジェクト式ですから、「Rows」の直後に「Rows.Count」「Rows(1).Delete」のように何らかのオブジェクト式が続くこともよくあります。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » Excel VBAのRowsとRowの違い

「行・列を表すRange」の記事一覧

検索


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

.