エクセルでマクロを使いたいと思っています。
コピー後の貼り付け先を毎回指定したところにしたいのですが、
やりたいことの例として現在できているのは、
シート1のA列最終行のセルをコピー ⇒ シート2のA3セルへ貼り付け
シート1のC列最終行のセルをコピー ⇒ シート2のC3セルへ貼り付け
のような感じです。
これを、
シート1のA列最終行のセルをコピー ⇒ シート2のA4セルへ貼り付け
シート1のC列最終行のセルをコピー ⇒ シート2のC4セルへ貼り付け
といったように、次実行するときにはシート2の別の行に貼り付けたいです。
初心者なので、マクロを記録してそのまま実行しておりソースが長く
なっていますが、以下のようになっています。
-------------------------------------------------------------------------------------------
Sheets("シート1").Select
Range("A1").Select
Selection.End(xlDown).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("シート2").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
-------------------------------------------------------------------------------------------
貼り付け先の、Range("A3").Select 部分の指定が悪いのはわかるのですが、
どう指定すればよいのかわからず困っています。
お詳しい方ご教授よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
No.2の者です。
何か規則性があるなら、マクロで簡単にできるかと思います。
(ワークシートがどの様なレイアウトなのかとかが、不明なので。)
例えば、A5とC5、A6とC6と、シート1と2で、毎回、行が同じなら、
Dim myRow As Long
myRow = Worksheets("Sheet1").Range("C1").End(xlDown).Row
Worksheets("シート2").Cells(myRow, 1).Value = Worksheets("シート1").Cells(myRow, 1).Value
行数を保存する変数を用意して、データの入っている最下部の行数を取得
シート1のデータを、シート2の同じ行数へ、文字を入れるとか。
何度も申し訳ないです・・・。
いろいろとヒントを得ながら、
ActiveSheet.Paste
ActiveCell.Offset(0, 1).Activate
などを繰り返すことでどうにか解決しました。
丁寧でわかりやすい回答でしたのでベストアンサーにさせていただきます。
ありがとうございました!
No.4
- 回答日時:
この場合、
コピー元の指定
と
コピー先の指定
が必要になる。
・・・
なんか、
・先にコピー先を指定して
・そこでマクロを起動させて、
・別のシートの最終行のデータを複製して貼り付けたい。
という感じだろうと推測します。
この場合、
・コピー先を変数に保存しておいて、
・コピー元の別シートの最終行のセルを指定して、
・値をクリップボードに取り込み、
・コピー先を保存した変数を使って貼り付け位置を指定して貼り付け。
という手順になりますね。
面倒ですが、特別難しい手順ではありません。
この手順の中のなにが分からないのかを自問自答しながら、インターネット上を検索してみると、自力でマクロを作れるようになりますよ。
やりたいことは大方おっしゃるとおりです。
2日くらいどうにかならないか調べながらやっていたのですが、これだけ時間かけて何もできなければマクロ使わないほうがいいかもと思ってしまったので最後に質問をしたところでした(汗)
No.3
- 回答日時:
No.2の者です。
試していないので、エラーが出たら適宜修正して貰いたいですが、下記の
様な感じでどうでしょうか?
シート2のA列には、何か入っていないとエラーになります。
例えば、1行目にタイトルを入れるなどが必要になります。
Worksheets("シート2").Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = Worksheets("シート1").Range("A1").End(xlDown).Value
※ Cells(Rows.Count, 1).End(xlUp).Offset(1)
意味:A列の一番下のセルから、Ctrl + ↑ で、そのセルの1つ下を指定。
ありがとうございます。
先ほど回答いただいたコードでスッキリ見やすくなり、わかりやすかったです!
追加でいただいた回答で本来ならいけると思うのですが、シート2へは途中に入力された項目があり、Cells(Rows.Count, 1).End(xlUp).Offset(1) だとうまくいかないんです(泣)
先ほどの、
Worksheets("シート2").Range("A4").Value = Worksheets("シート1").Range("A1").End(xlDown).Value
のWorksheets("シート2").Range("A4").Value をアクティブなセルに指定したり、選択範囲を指定するようなことはできないのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) 範囲を指定して別シートにコピペ 2 2022/09/15 07:32
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/26 13:19
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/07/05 09:30
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルの下部のシートタブの...
-
エクセルでセルの書式設定がで...
-
EXCELでコピーしたグラフのデー...
-
ワークシートの行が途中から表...
-
シート全体を他のブックのシー...
-
シート保護したExcelへの画像貼...
-
Excelで保護のかかったシートの...
-
Excelで大量の2000個のリストを...
-
ロックしたセルのコピー&貼り付け
-
エクセルで数式は残したまま他...
-
VBA アクティブでないシートの...
-
コピー&ペーストすると、VLOOK...
-
worksheetクラスのcopyメソッド...
-
エクセルで多数のシートをまと...
-
excelで勝手にテキストボックス...
-
エクセルで打ち込んだ数字を自...
-
エクセルファイルの容量が大き...
-
行の挿入ができなくなった
-
Excelのシートを1枚にまとめる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルでセルの書式設定がで...
-
エクセルの下部のシートタブの...
-
EXCELでコピーしたグラフのデー...
-
シート全体を他のブックのシー...
-
ロックしたセルのコピー&貼り付け
-
ワークシートの行が途中から表...
-
Excelで保護のかかったシートの...
-
excelで勝手にテキストボックス...
-
VBA アクティブでないシートの...
-
エクセルで数式は残したまま他...
-
【エクセル】数式のセル番地を...
-
Excelで大量の2000個のリストを...
-
エクセルで打ち込んだ数字を自...
-
エクセルで多数のシートをまと...
-
【エクセル】表から条件に合っ...
-
EXCELで複数シート作成後、全シ...
-
シート保護したExcelへの画像貼...
-
シート保護してても並び替えを...
-
wordからexcelへ一部のデータを...
おすすめ情報
質問の仕方がわかりづらくてすみません!
貼り付ける行が毎回変わってくる(次回はA5とC5、その次はA6とC6)ので、セル固定ではなく任意の場所に貼り付けられるようにしていしたいです。