• ベストアンサー

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

専門家に質問してみよう