【エクセル・マクロ】 繰り返し貼り付けがしたいです

このQ&Aのポイント
  • 仕事で、大量のコピペをしなきゃいけなくなり、マクロを組みたいのですが、素人でよく分からず投稿させて頂きました。
  • 参考画像のように、A列にあるデータを、B列の数に合わせてC列に繰り返し貼り付けをしたいのです。
  • A列の50行を、3,000÷50=60回も貼り付けするのが面倒で、3,000という数字も、毎回1,000~10,000と変動するので、マクロを組んだ方が早いのでは、と思いました。また、欲を言えば、A列に数式を入れていることもあり、C列に数式の繰り返し貼り付けをおこないたいのですが、これは難易度がぐっと上がるのでしょうか?
回答を見る
  • ベストアンサー

【エクセル・マクロ】 繰り返し貼り付けがしたいです

仕事で、大量のコピペをしなきゃいけなくなり、 マクロを組みたいのですが、素人でよく分からず投稿させて頂きました。 宜しくお願い致します。 参考画像のように、 A列にあるデータを、B列の数に合わせて C列(色付けしてある列)に繰り返し貼り付けをしたいのです。 ※参考画像では、分かりやすいように姓名にしてありますが、 本当は文章とか数字とかを使います。 参考画像ではA列に5行分、B列に20行分しかありませんが、 本当はA列に50行分、B列に3,000行分あります。 ですから、A列の50行を、3,000÷50=60回も貼り付けするのが面倒で、 3,000という数字も、毎回1,000~10,000と変動するので、 今後のことを考えると、マクロを組んだ方が早いのでは、と思いました。 また、欲を言えば、A列に数式を入れていることもあり、 C列に数式の繰り返し貼り付けをおこないたいのですが、 これは難易度がぐっと上がるのでしょうか? 他力本願で大変申し訳ございませんが、 何卒宜しくお願い致します。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

マクロは不要です。 (1).A2:A6をコピー (2).C2にペースト (3).セルC6の右下に表示されている■をWクリック これでB列のデ-タが途切れる行までCのペーストが繰り返されます、

fubi0422jp
質問者

お礼

これは盲点でした。 こんな簡単にいけるんですね! シンプル過ぎるってことでベストアンサーにさせて頂きました! ありがとうございます!

その他の回答 (3)

回答No.4

A列:貼りたいデータ A列途中にデータなし、は許しません! C列に、繰り返し執拗に貼り付けます。 C2に、 =INDIRECT("$A"&(MOD(ROW()-2,COUNTA($A$2:$A$100)))+2) 以下、コピー COUNTA($A$2:$A$100)は、どこか固定位置に計算しておく方が良いでしょう。

fubi0422jp
質問者

お礼

ありがとうございます! この方法でもOKでした! 助かりました!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

マクロだからと言って計算速度が決して早くなることはありません。次のような関数を使うことでご希望のようなことができますね。 例えばA2セルからA50セルまでデータがありそれを繰り返しC列に表示させるのでしたらC2セルに次の式を入力します。 =IF(B2="","",INDEX(A$2:A$50,MOD(ROW(A1)-1,49)+1)) その後にC2セルをコピーします。次に名前ボックスでC2を例えばC2:C3500のように書き変えます。確定することでそれらの範囲が指定されますので右クリックして「貼り付け」をすれば完成です。B列にデータが有る行までにA列のデータが表示されます。

fubi0422jp
質問者

お礼

ありがとうございます! この方法でもいけました! すごいバリエーションが多いんですねぇ。 エクセルってすごい・・・

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

不明箇所: >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

fubi0422jp
質問者

お礼

マクロ試しました! この方法でもいけました! マクロの勉強になりましたので、感謝です♪

関連するQ&A

  • エクセル マクロ 線対称・点対称の位置に色づけする

    いつもお世話になっております。 エクセルのマクロを使って(あるいは数式でもいいのですが・・・)やりたいことが2つあります。 (1)指定したセルを「対称の中心」として,アクティブセルと点対称の位置にあるセルに色付けができないかと思っています。 (2)指定した列を「対称の軸」として,アクティブセルと線対称の位置にあるセルに色付けできないかと思っています。 もし可能であるようなら,どなたかマクロを教えていただけませんか? いつも他力本願で申し訳ないのですが,教育に役立てたいと思っています。どうかご教授ください。

  • エクセルで勝手に式が設定されてしまう

    エクセルで同じ行のa列からb列を引く数式がc列に設定されています。(数行分) まだ数式が設定されていない行のb列に数字が入力されると、その行のc列に勝手に a列からb列を引く数式が設定(生成)されてしまいます。 どうしてこのようなことがおこるのでしょうか? 文章では説明が難しいので添付画像を参照願います。

  • エクセルかマクロで・・・

    エクセル関数かマクロで作りたいのですが、   A列に数字B列に個数を入力していくとします。   A列の数字をB列の個数分だけC列に表示したいのです。  例えばA1に300、B1に5、A2に500、B2に6と入力した場合、   C1からC5に300、C6からC11に500、と表示するにはどうしたらよい  でしょうか。 よろしくお願いいたします。

  • リンク貼り付けをマクロで簡素化したい

    1)個人票ブック(太郎シート 花子シート 次郎シー・・・・・)の各シートのA1からA5まで、値や公式がはいっています。 2)このシートのA1からA5までの値等を、別の総括表ブック(一枚のシートしかない)にリンク貼り付けをします。 3)まず、太郎シートのA1~A5までは、総括表ブックのB列にリンク貼り付けするマクロボタンを、太郎シートに設置します。 4)さらに、花子シートのA1~A5までは、総括表ブックのC列にリンク貼り付けするマクロボタンを、花子シートに設置します。 5)そして、次郎シートのA1~A5までは、総括表ブックのD列にリンク貼り付けするマクロボタンを、次郎シートに設置します。 6)こうしてマクロボタンを順次貼り付けていきます。 7)各シートの貼り付け場所は列に貼り付けていきますが、上から順番ではなく、任意に飛んでいますが、  各シートの行は、みな一律で同じ行です。 列は違っても皆おなじ行にリンク貼り付けしたいです。 このような操作をマクロ記録でつくりましたが、膨大な作業が必要です。これをなんとかVBAで簡素化したいのですが・・よろしくお願いします。

  • Excelの値貼り付けについて

    Excelの値貼り付けについて   A列  B列 1   1 2       2 3   3 4       4 5   5 6       6 7   7 8       8 9   9 10      10 A列・B列の1~1000行にランダムに数字が入力されており、A列の値を残したままB列の数字をA列に追加したいです。 同じ行でA・Bどちらにも数値が入力されていることはありません、かならずどちらか一方です。 関数を使わないと出来ないでしょうか? 検索してみましたが、見つからないためどうか宜しくお願い致します。

  • Excel 2007 マクロ 表の貼り付け

    Excel 2007 マクロ 表の貼り付け Excel 2007 マクロ 表の貼り付けについて教えてください。 <Sheet1>の表にあるA2からD4を <Sheet2>に値貼り付けをします。 表は画像を添付します。 マクロの記録では下記内容になります。 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2:D4").Select Selection.Copy Sheets("Sheet2").Select Range("A2:D4").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub <Sheet1>のA列の行の増減にかかわらず、<Sheet2>に貼り付けることができるように するにはどのようにマクロを修正すればよろしいでしょうか。

  • エクセルのマクロについて質問です。

    エクセルのマクロについて質問です。 マクロを発動した時に、あるセルに入力してある数値を参照し、その行のX列目に数値を張り付けるものを作成しようとしています。 例えば シート「1」の A1に日付を入力 B1にある数字を入力 シート「2」の A列にA1→1~A31→31の日付が入力されている時 マクロ発動時にシート「1」A1の日付と一致する シート「2」のB列にシート「1」のB1の値を貼り付け ↑たとえばシート「1」のA1が1日でB1が500だった場合 シート「2」の1日(A1)と同じ行でB列(B1に500を 貼り付けるものです。 かなり下手な説明だと自覚しておりますが、解読できる方 どうかご教授ねがいます。

  • エクセル セル参照での自動計算(マクロ必須?)

    いろいろ調べたのですが、あまりにも欲張った作業を自動的にさせようと していますので私の力では限界があり、皆さんのお力をお借りして ヒントでも教えて頂ければと思い質問をさせて頂きます。     A       B        C   (伝票NO)  (金額)    合計金額 1  001850   600     2  001850   300 3  001850   1580     2480 4  001851   2100     2100 5  001852   80     6  001852   1260 7  001852   800 8  001852   1260 9  001852   1260    10 001852   945 11 001852   945      6550 12 001853   1050 13 001853   420 14 001853   1260     2730 15 001855   1575 16 001855   1600     3175 17 001854   1260      18 001854   945 19 001854   12600     20 001854   425      15230 上記のファイルで A列を参照し、A列が同じ値になっている行分のB列の合計をC列へ自動的に 表示させたいのですが、どのような関数やマクロを使えばよいのでしょうか? 例)  001850がA1~A3の行まであるので  同じ行数分のB列(B1~B3)の合計を  C列のC3に表示 ●A列は番号順に並んでいない     ※001855から001854に戻る場合もある ●A列の行は1行の場合もあれば、複数行の場合もある また、同じような形式でファイルがたくさんあり ファイルごとにA列番号が違い、またA列の行数も違います。 このような場合はマクロを使用することになるのでしょうか? IF関数ですと限界があり また、せっかく作った関数式が別ファイルには論理式や真偽のセル値の違いで エラーが表示されると思います。 たぶんマクロを使わないといけないと思うのですが 最終的な目標として、「ファイルを開く」→「マクロ実行?」→「C列に合計表示」という 作業を自動的におこないたいです。 欲を出せば、C列の合計が表示されている行以外は全て削除させたいです。  ※上記の例ですが、C1、C2、C5、C6などの行を削除  ※削除させるので「形式を選択して貼り付け」→「値を貼り付け」という作業も   マクロで行う必要があると思うのですが…。 何かヒントになるよな事でも構いませんので ご教授願います。

  • エクセルでマクロの作成

    a列の1行目が『No』の項目名以下の行が空欄になっています。 b列に『あ』があれば同じ行のa列を空白にして、次のb行が空欄であれば同じ行のa列に1の数字を、b列の空白行に対しa列には連続番号が入るようにしたいのですが、マクロがどうしてもうまくできません。 どなたか、初心者向けに解りやすい解説と実際のマクロを教えていただけませんか? 初心者でうまく説明できてないかもしれませんがよろしくお願いします。

  • エクセルでのマクロ:画像の貼り付け

    お世話になります。 まだマクロについて不勉強ですが、表記のことができるかどうか気になっています。 お教えください。 1 エクセルの列に A B Cと表記しておく 2 「A」「B」「C」という名前のフォルダから画像を取ってきてA BCの列の下に貼り付ける 3 新しく「D」というフォルダができた場合、エクセルの列にDを追記してさらに貼り付けていく   (クリックを押せば自動的に貼り付けれるでもよいです) できるできないでもいいのでお教えください。 よろしくお願いします。

専門家に質問してみよう