- ベストアンサー
コピーしたデータを2行ずつに貼り付け
いつもお世話になります。 Excel VBAの事で質問させて下さい。 あるデータ(リスト形式)からデータを抽出して 別のシートの最下端行に貼り付けたいと考えています。 貼り付ける際に、コピーしたデータを2行ずつに複製して 貼り付けていきたいのですが、良い方法はありませんでしょうか? 何卒よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1のA列に「あるデータ(リスト形式)」があり、Sheet2のA列にデータを「2行ずつに複製して貼り付け」るマクロのサンプルです。 VBAの標準モジュールに貼り付けて下さい。 Sub Macro1() Dim idx As Long Worksheets("Sheet1").Select For idx = 1 To ActiveSheet.Range("A65536").End(xlUp).Row ActiveSheet.Cells(idx, "A").Copy _ Destination:=Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0).Resize(2, 1) Next idx End Sub マクロの内容はご自身でヘルプなどを見ながら理解してくださいね。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
質問内容は2つですか? 1)最下行を知るにはどうすれば良いか? 2)1行をコピーして2行にするにはどうすれば良いか? 1)は過去ログを「EXCEL VBA 最下行」で検索してください。 2)は、1行コピーして最下行の次の「2行選択してから」貼り付けを マクロの記録でもすればコードができます。手動で記録した行番号を1)で取得する「最下行」と置き換えてください。 EXCEL2007より前なら、メニューのツール>マクロ>マクロの記録。 EXCEL2007なら、リボンの表示>マクロ>マクロの記録。 rows("1:1").copy rows("3:4").select ActiveSheets.paste みたいな感じ(かなり省略)になるので 最下行を取得して変数nRowに格納したのであれば rows(nRow + 1 & ":" & nRow + 2).select に書き換えるということです。
お礼
早速の返答ありがとうございます。 最下行の取得は分かります。 1行を複数行にコピーするやり方ですが、 マクロの記録でやってはみましたが どうもピンときません。 というのも、「1行を複数行にコピー」を 何行にもわたって自動で繰り返したいからです。 rows(nRow + 1 & ":" & nRow + 2).select をデータの端まで繰り返すという様なニュアンスでしょうか・・・ もう少しで分かりそうな気がするんですが・・・
お礼
遅くなりまして申し訳ありません。 うまく行きました! ありがとうございました。