- ベストアンサー
【エクセル・マクロ】 繰り返し貼り付けがしたいです
- 仕事で、大量のコピペをしなきゃいけなくなり、マクロを組みたいのですが、素人でよく分からず投稿させて頂きました。
- 参考画像のように、A列にあるデータを、B列の数に合わせてC列に繰り返し貼り付けをしたいのです。
- A列の50行を、3,000÷50=60回も貼り付けするのが面倒で、3,000という数字も、毎回1,000~10,000と変動するので、マクロを組んだ方が早いのでは、と思いました。また、欲を言えば、A列に数式を入れていることもあり、C列に数式の繰り返し貼り付けをおこないたいのですが、これは難易度がぐっと上がるのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
マクロは不要です。 (1).A2:A6をコピー (2).C2にペースト (3).セルC6の右下に表示されている■をWクリック これでB列のデ-タが途切れる行までCのペーストが繰り返されます、
その他の回答 (3)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
A列:貼りたいデータ A列途中にデータなし、は許しません! C列に、繰り返し執拗に貼り付けます。 C2に、 =INDIRECT("$A"&(MOD(ROW()-2,COUNTA($A$2:$A$100)))+2) 以下、コピー COUNTA($A$2:$A$100)は、どこか固定位置に計算しておく方が良いでしょう。
お礼
ありがとうございます! この方法でもOKでした! 助かりました!
- KURUMITO
- ベストアンサー率42% (1835/4283)
マクロだからと言って計算速度が決して早くなることはありません。次のような関数を使うことでご希望のようなことができますね。 例えばA2セルからA50セルまでデータがありそれを繰り返しC列に表示させるのでしたらC2セルに次の式を入力します。 =IF(B2="","",INDEX(A$2:A$50,MOD(ROW(A1)-1,49)+1)) その後にC2セルをコピーします。次に名前ボックスでC2を例えばC2:C3500のように書き変えます。確定することでそれらの範囲が指定されますので右クリックして「貼り付け」をすれば完成です。B列にデータが有る行までにA列のデータが表示されます。
お礼
ありがとうございます! この方法でもいけました! すごいバリエーションが多いんですねぇ。 エクセルってすごい・・・
- keithin
- ベストアンサー率66% (5278/7941)
不明箇所: >A列に数式を入れている ご質問添付図で言うとA7以下空白に見えるセルに,実は空白("")を計算している数式がもっと下まで続いていませんか? 作成例: sub macro1() dim n as long n = application.countif(range("A:A"), "?*") - 1 range("C2:C" & range("C65536").end(xlup).offset(1).row).clearcontents do until range("C65536").end(xlup).offset(1, -1) = "" range("C65536").end(xlup).offset(1).resize(n, 1).formula = "=A2" loop ’以下オプション range(range("B65536").end(xlup).offset(1, 1), range("C65536").end(xlup).offset(1)).clearcontents end sub
お礼
マクロ試しました! この方法でもいけました! マクロの勉強になりましたので、感謝です♪
お礼
これは盲点でした。 こんな簡単にいけるんですね! シンプル過ぎるってことでベストアンサーにさせて頂きました! ありがとうございます!