こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelVBAでのオートフィルの使い方

Excel2003です。
Bセルに入っている値をHセルまで右方向にオートフィルするマクロを組んでいるのですが、うまく動きません。
Bセルの最終行は変動し、オートフィルはBセルの最終行と最終行の1つ手前の2つ分をオートフィルしたいのです。

Range("B1").End(xlDown).Offset(-1, 0).Select
Range(ActiveCell, ActiveCell.Offset(0, 7)).AutoFill Type:=xlFillDefault

Range("B1").End(xlDown).Offset(0, 0).Select
Range(ActiveCell, ActiveCell.Offset(0, 7)).AutoFill Type:=xlFillDefault

これで、オートフィルしようと思っていたのですが、

Range(ActiveCell, ActiveCell.Offset(0, 7)).AutoFill Type:=xlFillDefault

この式の実行で、

実行時エラー'1004'
RangeクラスのAutoFillメソッドが失敗しました

と、出てしまいます。

  Selection.AutoFill Destination:=Range("B23:H23"), Type:=xlFillDefault

こういうマクロなら動くので、AutoFillの後に明確な範囲指定をしていないせいなのでしょうか?
最終行が変動してしまう為、このような明確な範囲指定をする事ができません。
いい解決方法はないでしょうか?

投稿日時 - 2013-08-29 18:30:54

QNo.8241051

困ってます

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

>このような明確な範囲指定をする事ができません。

いいえ。アナタのマクロで、既に解決策は得られています。

作成例:
sub macro1()
 range("B1").end(xldown).select
 selection.autofill destination:=range(selection, selection.offset(0, 6))
 selection.offset(-1).select
 selection.autofill destination:=selection.resize(1, 7)
end sub





>していないせいなのでしょうか?

その通りです。
AutoFillのところにカーソルを入れておいてF1キーを押し、ヘルプの説明をちゃんと見る習慣を是非つけてください

----抜粋
expression.AutoFill(Destination, Type)
(中略)
Destination 『必ず指定します。』オートフィルの書き込み先になる Range オブジェクトを指定します。基準となるデータの入ったセル範囲も含むようにします。
Type 省略可能です…
-----

のように、ここは省略しちゃダメよとしっかり書かれています。

投稿日時 - 2013-08-29 18:51:40

お礼

ありがとうございます。
これからはF1も活用していきたいと思います。

投稿日時 - 2013-08-30 06:28:02

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問