• ベストアンサー

VBA 変数について

下記コードにおける変数rは、具体的にどういう事を意味するのでしょうか? よろしくお願いします。 Dim r As Long With Worksheets("Steet1") r=.Cells(.Rows.Count,"a").End(xlUp).Row

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

>Dim r As Long エクセルの行番号を捉えるので、変数のタイプは数です。エクセル2003以前はIntegerでも良かったと思います。 >With Worksheets("Steet1") Worksheets("Steet1") オブジェクトについて・ 次ぎの先頭の「.」がそのオブジェクトに関するものであることを 表せるようになります。 >r=.Cells(.Rows.Count,"a").End(xlUp).Row Sub test02() MsgBox Cells.Rows.Count End Sub が65536となるので判るように Range(A65536").End(xlup).Row と同じです(こちらの表現が多い) EndはEndメソッドで終端(セル)を表す。xlUpで下から上に見ます。 Cells(.Rows.Count,"a").ですから、A列について その終端セルのRowプロパティすなわち下端セルの行番号をrに代入するので、下端の行数がわかった・使えることになります。 上端セル(固定していることが多い)から下端のセル行番号rのセルまで For i=3 to r Cells(i,"A")=・・・ Next i のような繰り回しができます。

taka1012
質問者

お礼

ご丁寧な回答ありがとうございました。 とても参考になりました。

その他の回答 (3)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

A列の一番最後に値が入力されている行番号をrに代入しています。 .Rows.Count とは、シートの行数です。したがって、 .Cells(.Rows.Count."a")は、A列の一番下のセルを意味します。 (Cells(1,"A")はCells(1,1)やRange("A1")と同じことです) そこから、.End(xlUp)するというのはVBAでのテクニックですが、上向きにセルを検索していって、値がみつかった一番最初のセルを見つけます。それはすなわちA列に値が代入されている一番下のセルで、そのセルに対して.Rowプロパティで行番号を取得している、ということです。

taka1012
質問者

お礼

ご丁寧な回答ありがとうございました。 とても、勉強になりました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

マクロは、 A列の一番下のセルを選択して、 [End],[↑]とキー操作 した時と同じです。 そのときに止まった位置の「行」の番号(数字)が入っています。

taka1012
質問者

お礼

迅速なご回答ありがとうございました。

回答No.1

変数rを長整数型で宣言します。 aと入力されているセルを行の最後からカウントして変数rにしています。

taka1012
質問者

お礼

迅速なご回答ありがとうございました。

関連するQ&A