• ベストアンサー

アクティブセル以下をコピーするマクロの設定の仕方が分かりません。Excel2000です。

アクティブセル以下をコピーするマクロの設定の仕方が分かりません。Excel2000です。 B列(B3:B402)のどのセルをアクティブにした場合でも、"アクティブセルをそれ以下のセル全て(B402まで)に オートフィルでコピーする"マクロを設定したいのですが、 自動記録だとアクティブセルはセル番号で記載されてしまうため、応用が利きません(というか分かりません)いずれかのセルをアクティブにし、コマンドボタンを押すと それ以下のセルにコピーされるという流れです。 私なりに調べてみましたが分かりません。 どなたかご教示願えませんでしょうか?

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

質問の方法(フィルハンドルをドラッグする方法)に拘ると以下のようになります。 作成した記録マクロをちょこっと修正するだけです。 '------------------------------- Sub Test()  ActiveCell.AutoFill Destination:=Range(ActiveCell, "B402"), Type:=xlFillDefault End Sub '------------------------------- 当然ながらこれは普通のコピーと同じく、【式】、値、セルの書式もコピーされます。 値だけであれば、NO2さんの回答か、Copyメソッドで値のみのコピーをマクロ記録してみる。 以上。

miyabi08
質問者

お礼

onlyromさん、ありがとうございます。 お礼が遅くなって申し訳ありません。 onlyromさんの回答で思うような動きができました。 ありがとうございました!

その他の回答 (3)

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

こんにちは。 >オートフィルでコピーする"マクロを設定したいのですが、 オートフィルということは、例えば、インクリメンタルな数や文字の順を使うという意味なのでしょうか?オートフィルを使うなら、Test2 のようになります。必要に応じて、AutoFill のXlAutoFillTypeの引数を入れてください。何も入れなければ、デフォルトです。 '------------------------- Sub Test1() With ActiveCell If .Row > 2 And .Row < 403 And .Column = 2 Then .Copy Range(.Cells, Range("B402")) End If End With End Sub '------------------------- Sub Test2() With ActiveCell If .Row > 2 And .Row < 403 And .Column = 2 Then .AutoFill Range(.Cells, Range("B402")) End If End With End Sub

miyabi08
質問者

お礼

Wendy02さん、お礼が遅くなりました。申し訳ありません。 色々と参考にさせていただきます。 ありがとうございました。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

多分、ご希望は以下のことかと思いますが。 Range(ActiveCell, Range("B402")).Value = ActiveCell.Value 応用を考えて、アクティブなセルの行番号、列番号取得して 複数のセルの範囲を指定する方法と値を代入する方法です。 仮に、E1に、値を入れたい行の数が入っていたとして。 GYOU = ActiveCell.Row RETU = ActiveCell.Column AIDA = Range("E1").Value Range(Cells(GYOU, RETU), Cells(GYOU + AIDA, RETU)).Value = ActiveCell.Value 意味理解して応用考えてみてください。

miyabi08
質問者

お礼

hallo-2007さん、お礼が遅くなって申し訳ありません。 とりあえず、すごく急いでいたので下記のようなマクロにしました。 書式はあまり関係なかったので、オートフィルでなくてももんだいなかったです。 本当は、“アクティブセルのひとつ下のセル”から“B402”までにペーストしたかったのですが、分かりませんでした。 応用も試してみます!ありがとうございました。 ActiveCell.Copy Range(ActiveCell, Range("B402")).PasteSpecial

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

Range(ActiveCell, Range("B402")).Copy

miyabi08
質問者

お礼

hana-hana3さん、ありがとうございます。 参考にさせていただきます。

miyabi08
質問者

補足

ANo.1さん、早速のご回答ありがとうございます。 私の質問の仕方が分かりづらかったのですが、 アクティブセルをコピーして、 アクティブセルの一つ下のセルからB402の範囲にペーストしたいのです。 以上、よろしくお願いします。

関連するQ&A

  • ”アクティブセル行」の一行下を選択”するマクロ

    ■ ”アクティブセルの、1個下の行を選択し、新しい空白行を一行挿入” ■次にその”アクティブセルのA列とB列の値を、  新しく作った空白行に、コピー  ・・・といったマクロを組もうとしております。 たとえば 12行目を選択するプログラム(コマンド?マクロ?)は、  Rows(12:12) となっていたので、それにならって Rows(activecell:B) などとやってみたのですが、うまくいきませんでした。 このような場合、どうしたらよいのかアドバイスをいただけると助かります。 どうぞ、よろしくお願いいたします。  

  • マクロを記録するときの、アクティブセルの扱いがよく分かりません

    パソコン教室で使っているテキストの問題を2つ解いているのですが、 A先生とB先生とで解説が異なっており混乱しています。 (1)『表の合計金額の高い順に並べ替えるマクロを作りなさい。   ※アクティブセルを最優先のキーとして並べ替えが行われるようにする事。』 (2)『表の書式をオートフォーマットで編集するマクロを作りなさい。   ※マクロは絶対参照で記録する。   ※アクティブセルで書式が変更されるようにする。』 A先生は、表内の対象(例1では合計金額)をクリックしてからマクロの記録を始めなさいと言います。 B先生は表の外をいったんクリックしておいて、記録を始めてから改めて対象のセルをクリックしなさいと言います。 どっちが模範解答とみなせばよいのでしょうか? VBEでいうRange(~)が必要か否かはっきりしません……よろしくお願いします。

  • EXCEL2003 書換えたセルを元に戻すマクロ

    お世話になります。 質問に関してですが、次のような内容になります。 セルB2:J2までの各セルに数式が入っており、セルL2に入力された内容によって各セルにデータが表示されるような物があります。 例えば、B2のセルのデータ内容を書換えるとします。通常であれば数式によりデータが表示されている為、データを書換える為には数式を消さなければなりません。 そこで、内容を書換える為にマクロを組んでおり、コマンドボタンを押すと、セルの値のみをコピーしてセルに表示させています。(アクティブセルをコピー→形式を選択して貼付け→値のみを貼付ける、という動作をマクロにしています) この書換えた内容を元に戻す(元の数式の入ったセルに戻す)為のマクロの組み方について質問があります。 書換える前のセルの数式をセルB250:J250に入れているのですが、 セルB2の内容を書換える場合はセルB250、セルG2の内容を書換えるにはセルG250のように アクティブセルの位置によって、同じ列の数式を選択して貼付けるようにするにはどうすればいいでしょうか?

  • 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行以上ある場合はうまくいくのですが、一行のみだった場合オートフィルができなくてマクロがとまってしまいます。 一行なので当然なのですが、このような処理をしたい場合、他に方法はないものでしょうか? お知恵を拝借できますと大変助かります。 どうぞよろしくお願いいたします。

  • マクロでアクティブセルにペースト

    画像はエクセルのマクロで、F3~F7のセルをコピーして、O3のセルにペーストするという内容です。これをO3ではなく、アクティブセルにペーストするにはどのように記述すればよいでしょうか?

  • アクティブセルをキーにして並べ替えするマクロ

    EXCEL2003で、ボタンを押すと、「アクティブセルがある列」をキーにして、 降順で並べ替えが実行されるようなマクロを組みたいと考えています。 表自体は、「A1:Z1000」 の範囲でデータがあるのですが、 その内、「D2:Y999」 の部分だけが並び替わるようにしたいのです。 したがって、アクティブセルが、「A列~C列とZ列」の範囲内にあるときは無効で、 「D列~Y列」の中にあるときだけ動作するようにしたいです。 どんなふうに記述すればよいか、教えていただけませんでしょうか? どうかよろしくお願いいたします。

  • シート順のオートフィルの設定に関して(excel)

    excelでsheetを複数用いた場合のオートフィルの設定に関して質問です。  sheet10のB2のセルを「=sheet1!K3」としてその隣の列のC2が「=sheet2!K3」となっていくようにオートフィルを行いたいのですが、実際に行うとC2が「=sheet1!L3」になり、sheet1内での処理になってしまいます。 どのような設定を行えば、セルの場所が同じでsheetの番号だけ異なるようなオートフィルの設定にできますか?(sheet1からsheet9までデータが入力されています。) どなたかご存知の方がいらっしゃいましたら、よろしくお願いします。 使用しているのはexcel2010です。

  • EXCEL2010でセルのコピーがうまくいかない

    1 OSはWINDOWS7. 2 EXCEL 2010で 3 例えばA1のセルをクリックすればその周囲が   太線となり、右下隅に■が表示されるはずだが   それが表示されない。 4 その■にポインターを近づけて黒十字にし   下にドラッグすればB1にA1の内容が   コピーされるはずだが■がないのでできない。 5 従って、オートフィル機能もダメ。 6 どこかの設定がおかしくなったのでしょうか?

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

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

  • Excel2007で数式のオートフィルの仕方について

    Excel2007で数式のオートフィルの仕方について ただの数字をセルA1に1、セルA2に3と入力し、A1とA2を範囲選択して、 下方向にオートフィルすると 1 3 5 7 9 となるのですが、 数式の場合、このような連続入力になりません。 例えば、 =B1 =B3 =B5 =B7 =B9 のようにするにはどうすればいいのでしょうか。 オートフィルはできないのでしょうか。

専門家に質問してみよう