「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」と整数値を返すことが明記され、
ApplicationオブジェクトのRowsプロパティの詳細ペインを確認すると、下図のように「As Range」とRangeオブジェクトを返すことが明記されています。
書かれるオブジェクト式の特徴
.Rowの前は必ずRangeオブジェクト
完全一致条件で、Excelライブラリーを検索してみると、「Row」は、Rangeオブジェクトにだけ存在していますから、
「.Row」の前は、必ず、Rangeオブジェクトを返すオブジェクト式か、Rangeオブジェクトのセットされたオブジェクト変数になります。
.Rowsの前はさまざまな可能性
これに対して「Rows」のほうは以下のようにいくつかのオブジェクトに用意されているので、
「.Rows」の前は、いろいろなケースが考えられます。
また、グローバルメンバーでもあるので上位のオブジェクト式を省略して、
いきなり「Rows」と書かれることもあり得ます。
.Rowの直後に何か書かれることはあり得ない
また、Rowプロパティはデータを返すオブジェクト式ですから、「.Row」の直後にオブジェクト式が続くことはあり得ません。
これに対しRowsプロパティはオブジェクトを返すオブジェクト式ですから、「Rows」の直後に「Rows.Count」「Rows(1).Delete」のように何らかのオブジェクト式が続くこともよくあります。
- Newer:TextStreamの参照設定は?
- Older:FileDialogの戻り値を確認する
Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » Excel VBAのRowsとRowの違い