• ベストアンサー

EXCELのマクロにて

EXCELのにて連続したデータを入力したデータベースがあります。(行が5000、列がAAまで) このデータベースのデータの最終行だけを指定して違うシートにコピー・貼り付けがしたいのです。 マクロにてこのような作業をするときにはどういった文をかけばよいですか。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

マクロの記録を使いましょう。 (1)A列に少数の行にデータを入れる (2)ツール-マクロ-新しいマクロの記録を選ぶ-マクロ名をMacro1で良いとして-OK (3)A列にカーソルを置いて-ENDキー-↓キーを押す-すると一番下の65536行に行く-ENDキー-↑キーを押す-するとデータ最下行を指す-編集-コピー-他のシートのタブをクリック-編集-貼りつけ-マクロの記録終了 以上で Selection.End(xlDown).Select Selection.End(xlUp).Select Selection.Copy Sheets("Sheet2").Select ActiveSheet.Paste となります。これを参考にして少し手直ししてください。

hiromoe
質問者

お礼

どうもありがとうございました。なんとかできそうです。

その他の回答 (2)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

何処に貼り付けるか書いていないので、勝手に「最終行の次」と解釈します。 例えば、Sheet1の最終行をSheet2の最終行の次へコピーする場合で、 双方のシートには、A列が空白でないデータがあることを条件とすれば、 こんな感じで如何でしょうか。 Sub LastRowCopy()   Dim Rw As Long   Rw = Worksheets("Sheet1").Range("A65536").End(xlUp).Row   Worksheets("Sheet1").Rows(Rw).Copy   Worksheets("Sheet2").Select   Rw = Range("A65536").End(xlUp).Row   Rows(Rw + 1).Select   ActiveSheet.Paste   Worksheets("Sheet1").Select   Application.CutCopyMode = False End Sub

hiromoe
質問者

お礼

どうもありがとうございました。なんとかできそうです。

  • moon00
  • ベストアンサー率44% (315/712)
回答No.1

こんな感じでいかかでしょうか。 Sub Macro1() ' ' データの最終行をコピーして別シートにコピー Dim lastR As Integer Sheets("A").Select lastR = Range("A36635").End(xlUp).Row 'データの最終行番号を取得 Range(Cells(lastR, 1), Cells(lastR, 27)).Select Selection.Copy '最終行のA列からAA列までをコピー Sheets("B").Select 'シートBを選択 Range("a1").Select ActiveSheet.Paste Application.CutCopyMode = False 'a1に貼り付け End Sub シート名とコピー位置は適宜変更して下さい。

hiromoe
質問者

お礼

どうもありがとうございました。なんとかできそうです。

関連するQ&A