• ベストアンサー

エクセル マクロ オートフィルの終点の指定について

こんにちは。マクロ初心者です。 早速ですがやりたい事を書きます! A B C 1 名前 住所 TEL 2 あ  い 3 う  え 4 お  か … 100 き  く 上記のような状態で、C2セルにある関数(実際にはvlookupです) を入力し、オートフィルをC2からC100にかけたいです。 ただ、行数は毎回変化するので、AutoFill Destination は 固定ではなく、CurrentRegion の最終行までとしたいです。 どう記述すればよろしいでしょうか? 教えていただけましたら非常にうれしいです。 何卒よろしくお願いいたします。

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

  • ベストアンサー
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

Range("c2").AutoFill Destination:=Range("C2:C" & Cells(3).CurrentRegion.Rows.Count) でいかがでしょう。 途中で空白がある場合 Range("c2").AutoFill Destination:=Range("C2:C" & Range("C65536").End(xlUp).Row) がいいでしょう

hamanyaaki
質問者

お礼

ありがとうございました。 大変簡潔に、私のやりたい事をご回答いただきました。 Range("C2:C" & ~)の書き方を初めて知りました。 とても参考になりました。

その他の回答 (2)

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

初心者なら、判らないというのでなく、マクロの記録の力を借りること。そのためにはエクセルの操作を知っていないと扱えないが。 ーー 最終行を捉えル操作は (1)編集ージャンプーセル選択ー最後のセル Sub test01() r=Range("a1:C100").SpecialCells(xlCellTypeLastCell).Row MsgBox r End Sub (2)その列の十分下のセルを選択してENDキーのあとに上矢印キー Sub test02() r= Range("B65536").End(xlUp).Row MsgBox r End Sub ーーー おーとふぃるコピー貼り付けの操作 マクロの記録 Selection.Copy Range("D2:D21").Select Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False このRange("D2:D21")の21のところをRange("D2:D" & r).・・ に変える。rは上記で求めた最下行数です。

hamanyaaki
質問者

お礼

ありがとうございました。 Range("C2:C" & ~)の書き方を初めて知りました。 とても参考になりました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

A2からA列の最終行までと同じ範囲というのなら、 Range("C2").AutoFill Destination:=Range("C2:C" & Cells(Rows.Count, 1).End(xlUp).Row), Type:=xlFillDefault と言う感じは如何でしょうか。

hamanyaaki
質問者

お礼

ありがとうございました。 Range("C2:C" & ~)の書き方を初めて知りました。 とても参考になりました。