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

解決済みの質問

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

Range("A1").Select
Selection.AutoFill Destination:=Range("A1:A11"), Type:=xlFillCopy
Range("A1:A11").Select



上記のスクリプトで、
Rangeのところを
隣あった列の最下段まで

と、言うような指定はどうすればいいのでしょうか?

B列の最後の行と隣り合ったセルまで、
A1のセルをコピーしたい場合です。

投稿日時 - 2008-03-20 16:46:42

QNo.3879512

困ってます

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

こんな感じで

Range("A1").AutoFill Destination:=Range("A1:A" & Range("B" & Cells.Rows.Count).End(xlUp).Row), Type:=xlFillCopy

投稿日時 - 2008-03-20 19:41:23

お礼

その通りです。
望み通りの結果になりました。

ありがとうございます!!

投稿日時 - 2008-03-20 20:01:27

ANo.2

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

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

回答(4)

ANo.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

投稿日時 - 2008-03-20 20:03:03

お礼

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

ありがとうございます。

投稿日時 - 2008-03-20 20:54:32

ANo.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

投稿日時 - 2008-03-20 19:55:06

ANo.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月
sss1月
B列に最下行でsssがあり、その行までC列にデータを入れた。
ーー
.Value = "睦月"にすると
睦月
如月
弥生
・・
となる(余談)

投稿日時 - 2008-03-20 17:56:45

補足

  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列の数は毎回変わります。

すいません説明不足です。

投稿日時 - 2008-03-20 18:41:57

あなたにオススメの質問