• ベストアンサー

エクセルVBAでのオートフィル

Range("A1").Select Selection.AutoFill Destination:=Range("A1:A11"), Type:=xlFillCopy Range("A1:A11").Select 上記のスクリプトで、 Rangeのところを 隣あった列の最下段まで と、言うような指定はどうすればいいのでしょうか? B列の最後の行と隣り合ったセルまで、 A1のセルをコピーしたい場合です。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

こんな感じで Range("A1").AutoFill Destination:=Range("A1:A" & Range("B" & Cells.Rows.Count).End(xlUp).Row), Type:=xlFillCopy

gizmo_s
質問者

お礼

その通りです。 望み通りの結果になりました。 ありがとうございます!!

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 通常は、ショートカットを使えばよいです。 A1, B1 のセルがあるとして、A1 に値を入れ、A1の右下角(フィル)をダブルクリックすると、自動的に、B列のデータの終わりまで、オートフィルが利きます。 しかし、それは、オートフィルのデフォルトなので、最後の四角のイメージ(オートフィルオプション)が出てきますから、それをクリックして、「セルのコピー」を選択すればよいです。 マクロでしたら、 Sub TestCopy()   With Range("B1", Range("B65536").End(xlUp))     If .Cells(1, 1).Offset(, -1).Value = "" Then       MsgBox "最初のセルに値がありません。", 48       Exit Sub     End If     .Cells(1, 1).Offset(, -1).Copy .Offset(, -1)     ''オートフィルの場合     ''.Cells(1, 1).Offset(, -1).AutoFill Destination:=.Offset(, -1)   End With End Sub

gizmo_s
質問者

お礼

いつもありがとうございます。 上記の方法でも、同様に目的通りコピーされました。 ありがとうございます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

解決されていると思いますが、こんな構文でも。 最初の >Range("A1").Select のセレクトは不要です。この例では問題になりませんが、セレクトが多いと処理が遅くなる原因にもなりますよ。  Range("A1").AutoFill Destination:=Range(Range("A1"), _    Range("B65536").End(xlUp).Offset(0, -1)), Type:=xlFillCopy  Range(Range("A1"), Range("A65536").End(xlUp)).Select

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

>B列の最後の行と隣り合ったセルまで ということは具体的にどういうこと。C列についてB列の最終行までか。 実例を挙げないからこんな疑問が出る。 ーー 下記でどうかな。 Sub test01() d = Range("B65536").End(xlUp).Row Set rng = Range("C1:C" & d) MsgBox rng.Address With Range("C1") 'スタート値 .Value = "1月" .AutoFill Destination:=rng End With 'Range("A1:A11").Select End Sub 結果 B列  C列 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 sss 1月 B列に最下行でsssがあり、その行までC列にデータを入れた。 ーー .Value = "睦月"にすると 睦月 如月 弥生 ・・ となる(余談)

gizmo_s
質問者

補足

  A B C 1 copy a 2 ↓  a 3    a 4    a 5    a 6    a 7    a 8    a 9    a 10   a  ココマデ B列の10行まで書き込まれているとします。 Aの[copy]をB列の最後、 10行目と同じところまでコピーしたいのです。 B列の数は毎回変わります。 すいません説明不足です。

関連するQ&A