• ベストアンサー

Excelマクロで質問です。

Excelマクロで質問です。 Sheet1にデータが入力されていて(ここでは100行入力されているとします)、 Sheet2のA2からE2に数式が入力されています。 ↓ この数式をSheet1のA列に入力されているデータ行数分プラス1(ここでは100+1) Sheet2のA3以降(A3からA103)にコピペするマクロを教えていただけないでしょうか。 100は、毎回変化します。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

こういうことかな? Sub test01()     Dim myRow As Long '変数宣言     myRow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Offset(1).Row '行数取得     Sheets("Sheet2").Range("A2:E2").Copy Sheets("Sheet2").Range("A2:E2").Offset(1).Resize(myRow, 5) '式の転記 End Sub

7skies
質問者

お礼

すごい!さらにこんな方法もあるんですか、マクロは奥が深いですね。ありがとうございました。

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんにちは! こんな感じでも良いのですかね? Sub test() Dim i As Long Dim ws1, ws2 As Worksheet Set ws1 = Worksheets("sheet1") Set ws2 = Worksheets("sheet2") For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row ws2.Cells(i + 1, 1) = ws1.Cells(i, 1) Next i End Sub 的外れならごめんなさい。m(__)m

7skies
質問者

お礼

こんな方法もあるんですね。ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

次のようなマクロにしてはどうでしょう。 Sub Macro1() Set WS1 = Sheets("Sheet1") Set WS2 = Sheets("Sheet2") Dim RowPos As Integer RowPos = WS1.Range("A65536").End(xlUp).Row WS2.Select Range("A2:E2").Select Selection.Copy WS1.Select Range(Cells(3, "A"), Cells(RowPos + 1, "A")).Select ActiveSheet.Paste Range("A1").Select End Sub

7skies
質問者

お礼

こうやって組むんですね。ありがとうございました。 無事できました。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

まずは「マクロの記録」の仕方を覚えてみましょう。 それから、「マクロの実行」の仕方。 あと、 毎回変化する「最終行」で困ってますか?。 「最終行へジャンプ」の操作がわかれば、ヒントになるかと思います。

7skies
質問者

補足

入力行の最後尾の行の次を選択 Range("A65536").End(xlUp).Offset(1).Select というところまでは分かります。 問題は、それが101行と仮定した場合、 別のシートでその101という数字を使いたいのです。

関連するQ&A

  • エクセルのマクロを知りたい

    エクセルで,たくさんのデータが入力された【シートa】があります。 新しく【シートb】を作成して,そこに空白の表(1)~(10)までを作成します。 (ちなみに表(1)は1行から始まり100行まで,表(2)は101行から始まり200行まで・・・・といった感じです) 【シートb】の表(1)には,【シートa】でA列に「1」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。同様に,表(2)には,【シートa】でA列に「2」が入力されているデータを抽出して,それをB列の昇順に並べて記入しなさい。・・・というのを表(10)まで続けます。 上記のような命令をボタン一つで操作できるようなマクロを教えて欲しいのです。 お願いします。

  • エクセルのマクロや関数の質問

    いくつかまとめて質問させてください。 よろしくお願いします。 1、シート1のA1に、入れる関数ですが、シート2からシート20の"C13"の総合計をいれたいのです。 それらを、単純に1個ずつクリックして、+していけばいいのですが、他にもいくつもありますので、簡単にできる方法があれば教えていただきたいです。 2、.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues コードの一部です。A列にデータがなければ、2行目にコピペします。 データがあれば、次の行にデータをコピペします。 これを、データがなければ、1行目にコピペ、データがあれば、次の行にデータをコピペというふうに変更をお願いしたいです。 3、シート1のA1に、文字列を入力します。 阪神と入力すれば、阪神シートの"D5"、巨人と入力すれば、巨人シートの"D5"を表示できるような関数はありますか?='$A1$'!D5しか思いつきませんでした。 質問攻めですが、よろしくお願いします。

  • エクセルのマクロに関する質問です。

    エクセル2010使用。 以下の動作をマクロで行いたいです。 「まとめ」という名前のシートを追加。 全てのシート(シート数は毎回違い、10~18くらいあります。シート名もバラバラです。 )のC列にあるデータ(データ数も毎回違います。)をすべて抜き出して、(C列のデータだけでいいです。他の列のデータはいりません。)追加した「まとめ」というシートのA列にまとめるというマクロを組みたいです。 どなたかご教示いただけないでしょうか?

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • マクロ・VBA初心者です。

    マクロ・VBAについて下記のような処理を簡素化できるかどうかお伺いさせて頂きたいです。 Excelシート前提条件 定期的に3社から入金(同じタイミングで受けております)を受けており、その入金を管理しているシートとなります。 A列には第何回目の入金か、B列には入金日を、C,D,E列には3社ごとの入金額が他のシートからとんでくるようになっており、F列には3社からの入金額をsum(C○:E○)で計算しております。 ※A2には「第一回目」、A3には「第二回目」のように入力されています。 ※○には、最新回文の行番号が入力されています。 このような設定とはなっていますが、新たに入金を受けると、前回分の1つ下の行に、前回分の数式をコピペし、また前回分のは前回分の行に値貼り貼り付けをしなおし、数式ではなく手打ちの入力と同じ形にしております。 つまり、数式が入力されているのは最新回の行のみで、過年度分は全て値貼りされ直されている状況です。 説明がへたっぴでごめんなさい( i _ i ) 前提条件は上記のようになっておりますが、 (1)最新回の行に、1つ上の行の数式をコピペする (2)コピペ後、前回分の行に前回分のを値貼りしなおす この(1)、(2)の動作をマクロ・VBAでできますでしょうか。 マクロ・VBAは初心者であるためなかなかうまくいかずに困っております。 ご指導のほど、宜しくお願い致します。

  • 自動入力マクロ教えてください

    sheet1のB列に数値を入力していますデータは10行目以降に入力されています。 データが1,10.20ならsheet2のB列、2.15.35ならsheet2のC列5.40ならsheet2のD列それ以外はsheet2のE列に自動的に入力したいのですがそのマクロを教えていただけないでしょか。行はsheet1と同じ行に入力します

  • エクセル2013 マクロをご教示ください

    Sheet1 4行目に見出し。 5行目A列からU列までデータが入力されています。 中には空白セルもあります。 1行目から4行目迄はロックされています。 5行目以降の、あるセルをアクティブにすると、 該当行のC列からS列迄を Sheet2のA列を先頭に 5行目にコピペするには どうしたら宜しいでしょうか? Sheet2も4行目が見出しです。 Sheet1でのアクティブセルは 複数の場合もあります。 ただし、同じ行でセルを複数アクティブにしても Sheet2への貼り付けは1行とします。 よろしくお願いします。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 複数のsheet(毎回数が変わります)があり、集計シートにデータを貼り付けたいのですが 複数Sheetのデータを集計シートの1行に貼り付けます 複数Sheet1 J1→集計Sheet A2 複数Sheet2 J1→集計Sheet A3 複数Sheetが毎回数が違うので、どうのようにマクロを組んだらよいのでしょうか。 以上、よろしくお願いいたします。

  • 【再】エクセル2013 マクロをご教示ください

    Sheet1で選択しているセルの行をSheet2に転写したいです。 Sheet1とSheet2の4行目に見出し。 Shet1にはA~U列までデータがあります。(途中空白セルの場合もあり) Sheet1の5行目以降の、あるセルを選択してマクロを実行すると Sheet1のC~S列までをSheet2のA~Q列へコピペしたいです。 Sheet1は H列に必ずデータがあるので それらを最終行の判断基準とします。 Sheet1での選択セルは複数の場合もあります。 ただし、同じ行のセルを複数選択しても Sheet2への貼り付けは1行とします。 マクロを実行する度に、Sheet1での選択セルの該当行が Sheet2へ追加されるようにしたいです。 (Sheet2へコピペされたデータは残します) また、Sheet2への貼り付け内容が同じだった場合は 注意喚起のため メッセージで 「重複データが存在します」を表示したいです。 重複の判断基準はSheet2の B、D、F列とします。 宜しくお願い致します。

  • EXCELのマクロについて

    EXCELのマクロについて質問させてください。 一覧シートから、職種別の各シートへ集計(貼り付け)が出来るような プログラムを作成したいのでやってみたところ、私の知識では上手く出来ませんでした。 お力をお借り出来ると幸いです。 具体的には、一覧シートへ入力後(毎月入力) 『A』 『B』 『E』と分かれた職種別の各シートへ職種別かつ氏名の昇順でソートが掛かった状態で 貼り付け?集計?が出来るようにしたいです。 一覧シートのB列には「A・B・E」のどれかの職種が入力されており 氏名はD列E列へ記載しています。(漢字、カナ表示) A~AD列までデータを記入していますので、全て各シートへ集計出来ると嬉しいのですが・・・ 行は8行目から記載してます。 上記のようにプログラムを組む事は可能でしょうか。 具体的なプログラムも載せて頂けると嬉しいです。 宜しくお願い致します。

専門家に質問してみよう