• ベストアンサー

マクロでのオートフィルについて

ここの掲示板でオートフィルのことが記載されておりましたが、 それについて、質問です。 オートフィルは、範囲が明確でないと実行することができないと思っております。 データを何行か挿入して、挿入する上の行からフィル処理を行いたい 場合って可能なのでしょうか。 例 A列 B列 C列(識別するための関数処理をがはいっている) 1 アメリカ 1 2 イタリア 3 3 フランス 4 4 メキシコ 2 5行目以降に何行か似たようなデータを挿入し、C列はオートフィルで 自動で処理を行いたい。 上記で問題になるのが、データを挿入した場合、C列には関数が 入ってない状態になると思います。 フィルの最終地点が不明確な場合、どのようにやればいいかが わかりません。

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

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

C1には数式があって、B列のデータ数でC列にオートフィルを するなら With Range("B1", Cells(Rows.Count, 2).End(xlUp))     Range("C1").AutoFill Destination:=.Offset(, 1), Type:=xlFillDefault End With とか、 With Range("B1", Cells(Rows.Count, 2).End(xlUp))     .Offset(, 1).Formula = Range("C1").Formula End With ではどうでしょうか?

その他の回答 (1)

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

B列の最終行を取得すればよいのでしょうか? Cells(Rows.Count, "B").End(xlUp).Row とか Cells(2, "B").End(xlDown).Row

関連するQ&A

  • EXCEL2007マクロ/オートフィルについて

    VBA初心者です。 EXCEL2007でオートフィルのマクロを作ったのですが、下記のケースで困っています。 A列のデータが入っている行までB列のデータをオートフィルで入力したく、 A列の最終行からデータが入っている行までを求めてB列のデータをオートフィルで入れるため、下記のマクロを設定しました。 Sub test()   Range("B1").AutoFill Destination:=Range("B1", Range("A1048576").End(xlUp).Offset(, 1)) End Sub ところが、A列のデータが2行以上ある場合はうまくいくのですが、一行のみだった場合オートフィルができなくてマクロがとまってしまいます。 一行なので当然なのですが、このような処理をしたい場合、他に方法はないものでしょうか? お知恵を拝借できますと大変助かります。 どうぞよろしくお願いいたします。

  • マクロを使用してフィルについて

    データをコピーや挿入などをしたあとで 関数処理でフラグなどを入れる行がある場合、 フィルを使用すると関数が入ってるところまでしか 動きません(挿入前のデータのみ) 例 No データ フラグ 1 てすと 1 ←フラグの値はIF文で値を出すようにしてます。 2 らすと 2の行を挿入した場合、フィルをかけると関数がはいってないので フィルが機能しません。 マクロにはSelection.AutoFill Destinationというので フィルの先を明示的に指定すればできるのですが、 データがどんどん増えることを考えた場合、 変数か何かを使うのでしょうか??

  • オートフィル

    オートフィルをダブルクリックすると左の列の最終行で止まっていたのですが、なぜか地続きになっている列の一番最終行までオートフィルがいってしまうのですが、なぜでしょうか? 地続きにせず列を一列あけるときちんと隣の最終行でとまります。 昨日まではちゃんと左の列の最終行でオートフィルが止まっていました。 使っているのは2010です。

  • マクロとオートフィル

    オートフィルを使った「マクロの記録」の部分でつまずいてしまいました。 A列に名前、B列に数字が入っていて、2列にオートフィルタをかけている場合 B列の0の数字のみを非表示にしたかったので オートフィルのタブを使って「0」のチェックマークを外すという動作を「マクロの記録」で記録しました。 そこまではいいのですが、データの追加があったのでオートフィルタの範囲内に数字と名前をそれぞれの列に追加したあと上記のマクロを使ってみると、どうしても追加したデータと0が非表示になってしまいます。 これを避けるにはVBAで指示しないと行けないのでしょうか?

  • エクセルマクロ 横向きのオートフィルについて質問

    VBA初心者です。エクセルでオートフィルのマクロに挑戦しています。 セルA2にすでに入力されている関数を横向きにオートフィルを行い、1行目の入力されている最終列まで行いたいです。1行目の最終列は可変です。 いろいろ調べても、「最終行まで」というものはあるのですが、「最終列まで」というものが見つからないので、どなたか助けてください!よろしくお願いします。

  • オートフィルのマクロを作りたい

    ある列に複数のデータがある場合、その一番上の右隣のセルに数式などを入力後、そのセルの右下の小さい四角をダブルクリックすると、左の列のデータある一番下までオートフィルされますよね。 これのマクロを組みたいのですが、単純に出来ません。 普通通りマクロの記録をすると、実際に入力されていたセル番号までのマクロとなってしまい、データを追加した場合意味が無くなります。 具体的に説明すると、 A1からA10までそれぞれデータがある場合、 B1に数式を入力後、オートフィルでB10までコピー。 これをマクロで組もうとすると、B10までのフィルが組まれてしまい、A11~A20までデータを追加後マクロを実行してもB10までのフィルしか実行されません。 「左の列のデータがあるところまで」というマクロは組めないのでしょうか。

  • Excel2010 数式のオートフィルに関して

    現在Excel2010を使っています。 関数を入力し、それを2000行までフィルしたい場合、やはり2000行ドラッグするしか方法はないのでしょうか? 隣接するセルにデータがある場合はダブルクリックでオートフィルできますが、他には何もデータがない場合、2000行までドラッグするのは面倒だと思い、何か方法がないかと探しています。 数値であれば、ホームタブ「フィル」→「連続データの作成」で停止値の設定ができますが、 文字列や数式の場合は設定できないようで…。 そして、その「連続データの作成」の設定の中に、「オートフィル」とあるのに停止値の設定はできず、 そのままOKをしても何の変更も起こりません。 この機能はどんなに使うのでしょうか? もしご存知の方がいらっしゃいましたら教えてください。 よろしくお願いします。

  • エクセル オートフィルについて

    エクセル オートフィルについて A列 B列 C列 1   2  =A2+B2 上記のように、エクセル表のC列の2行目に数式が入っています。 この数式を連続オートフィルで下にスクロールしたいのですが、 C列の3000行まで簡易な方法で連続にしたいのです。 初心者で申し訳ないのですが、やり方を教えていただければ嬉しいです。 バージョンはエクセル20007です。

  • 一個飛ばしのオートフィル

    一行目にA列からC列に数値が入っているとします。 2行目のA列にはA1のデータを、B2は空白セルで、C2にB1のデータ、D2は再び空白で、E2にC1のデータを... という風に、一個飛ばしで連続したデータを入れる時、オートフィルなどで簡単に入力する方法はないでしょうか? 説明がわかりにくくてすみません。 お分かりの方いましたら、よろしくお願いいたします。

  • オートフィルで数式をコピー出来ない

    例えばA列にデータが縦に1列    B列に別のデータが縦に1列    C列でAをBで割って達成率を出したい。 C1のセルが「=A1/B1」となるような式で C1のセルをオートフィルでコピーしたら 思っていたのと違う式でコピーされた。 オートフィルで下が C1=A1/B1 , C2=A2/B2 , C3=A3/B3・・・・のようにその行ごとに計算できる様にするにはどうすればいいでしょう? 設定みたいなものが必要でしたら教えてください。

専門家に質問してみよう