アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもお世話になります。
Excel VBAの事で質問させて下さい。

あるデータ(リスト形式)からデータを抽出して
別のシートの最下端行に貼り付けたいと考えています。
貼り付ける際に、コピーしたデータを2行ずつに複製して
貼り付けていきたいのですが、良い方法はありませんでしょうか?

何卒よろしくお願いします。

A 回答 (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

マクロの内容はご自身でヘルプなどを見ながら理解してくださいね。
    • good
    • 1
この回答へのお礼

遅くなりまして申し訳ありません。
うまく行きました!
ありがとうございました。

お礼日時:2010/01/08 14:38

質問内容は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
に書き換えるということです。
    • good
    • 0
この回答へのお礼

早速の返答ありがとうございます。

最下行の取得は分かります。
1行を複数行にコピーするやり方ですが、
マクロの記録でやってはみましたが
どうもピンときません。

というのも、「1行を複数行にコピー」を
何行にもわたって自動で繰り返したいからです。

rows(nRow + 1 & ":" & nRow + 2).select
をデータの端まで繰り返すという様なニュアンスでしょうか・・・
もう少しで分かりそうな気がするんですが・・・

お礼日時:2009/12/26 14:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A