こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

マクロでコピー貼り付けやってみたいのですが。

マクロの初心者です。Dim で宣言してやりたいと思っています。
既存のExcelの機能で出来ないことはないと思いますが、敢えて、マクロででないか。
やってみたいと思っています。

やりたいこと等について
1 sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。
2 その時に最終行を取得してコピーをするとしたら、どんなコードが必要なのか
3 最終行の取得のコードの書き方が分からない
4 ネットで下記のような(一部変更)に作ってみたが、これで良いのでしょうか、わからない。
以上のことを答えて頂けませんか。よろしくお願いします。

Sub テスト()

Dim range1 As Range

Set range1 = Range("E2:J1109")
range1.Copy

ActiveSheet.Paste Destination:=("sheet1").Range("E2:J1109")
ActiveSheet.Paste Destination:=("sheet2").Range("E3:J1110")

Application.CutCopyMode = False

End Sub

投稿日時 - 2019-01-26 15:24:58

QNo.9581569

困ってます

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

>sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。
Sub Test01()
  Sheets("Sheet1").Range("E2:J1109").Copy Sheets("Sheet2").Range("E3")
  Application.CutCopyMode = False
End Sub
>最終行の取得のコードの書き方が分からない
Sheet2のE列の最終行の次の行に貼り付けるのなら
Sub Test02()
  Dim LastRow As Long
  'Sheet2のE列の最終行を取得
  LastRow = Sheets("Sheet2").Cells(Rows.Count, "E").End(xlUp).Row + 1
  Sheets("Sheet1").Range("E2:J1109").Copy Sheets("Sheet2").Cells(LastRow, "E")
  Application.CutCopyMode = False
End Sub

投稿日時 - 2019-01-26 19:27:17

補足

ありがとうございます。これでできましてが、もう一つ質問させて頂いてもよろしいですか。すみません、sheet1のE2:J1109のところも最終行をとるようにすることは、おかしいことなのでしようか。よくわかっていないのですが、お教え頂けませんか。

投稿日時 - 2019-01-27 21:50:38

お礼

お礼のコメントの位置を間違えました。すみません。ありがとうございました。勉強になりました。今後もよろしくお願いします。
最終行のこと、なるぼど決まっていない方が多いですね。わかりました。

投稿日時 - 2019-01-28 21:17:43

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

> sheet1のE2:J1109の範囲のデータをコピーしての別sheet2のE3:J1110の範囲に貼り付けたい。
Sub Test03()
  Sheets("Sheet1").Range("E2:J1109").Copy
  Sheets("sheet2").Range("E3").PasteSpecial
  Application.CutCopyMode = False
End Sub
Sheet2の最終行に貼り付け
Sub Test04()
  Sheets("Sheet1").Range("E2:J1109").Copy
  Sheets("sheet2").Cells(Rows.Count, "E").End(xlUp).Offset(1).PasteSpecial
  Application.CutCopyMode = False
End Sub
コピーではなく値だけを転記
Sub Test05()
 Sheets("Sheet2").Range("E3:J1110").Value = Sheets("Sheet1").Range("E2:J1109").Value
End Sub
>sheet1のE2:J1109のところも最終行をとるようにすることは、おかしいことなのでしようか。
おかしくはないでしょう、普通、最終行は決まっていない方が多いでしょう
Sub Test6()
  'Sheet1のE2から最終行までをコピー
  With Sheets("Sheet1")
    .Range("E2:J" & .Cells(Rows.Count, "E").End(xlUp).Row).Copy
  End With
  'Sheet2のE列の最終行の次の行に貼付け
  Sheets("Sheet2").Cells(Rows.Count, "E").End(xlUp).Offset(1).PasteSpecial
  Application.CutCopyMode = False
End Sub

投稿日時 - 2019-01-27 22:53:45

お礼

ありがとうございました。勉強になりました。今後もよろしくお願いします。
最終行のこと、なるぼど決まっていない方が多いですね。わかりました。

投稿日時 - 2019-01-28 21:15:56

あなたにオススメの質問