- ベストアンサー
Excel コピー&貼付の繰り返し
VBA初心者です。仕事で使いたいのですが、やり方がわからないので教えてください! A1セル 5650590 A16セル 5150950 15行おきに数字が3000行まで入っています。A1セルをコピーし、A2~A15に貼付。 A16セルをコピーしてA17~A31に貼付。 ↑この作業を繰り返したいのですが、VBAの書き方がわかりません。 よろしくお願いいたします。
- burietta87
- お礼率100% (2/2)
- Visual Basic
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! >15行おきに数字が・・・ とありますので、 >A16セルをコピーしてA17~A31に貼付。 の部分は >A16セルをA17~A30に貼り付け!としています。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() Dim i As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 15 Cells(i, 1).Copy Range(Cells(i + 1, 1), Cells(i + 14, 1)) Next i End Sub こんな感じではどうでしょうか?m(_ _)m
その他の回答 (1)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 Sub Sample() Dim i As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 15 Cells(i + 1, 1).Resize(14) = Cells(i, 1) Next End Sub
お礼
ご回答いただきありがとうございます。 もっともっと勉強しなければと思いました。
関連するQ&A
- エクセル 数式のコピー・貼付について
エクセルの数式のコピー・貼付について教えてください。 シート1にデータが1000行くらい入っているとします。 A B 1 100 5 2 200 3 3 350 9 : : : : : : シート2のセルA1、A2に =A1*B1 シート2のセルA3、A4に =A2*B2 シート2のセルA5、A6に =A3*B3 と、2行ずつ数式を入れたいのですが、 普通にコピー貼付をするとセル番地が自動的に 増えていってしまいます。 2行ずつ、同じセル番地の数式を入れる方法がありますでしょうか。 どうぞよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- コピーと貼付
既存のデータはA~Y列まで入力されています。 新規のデータはA~W列までとなっています。 既存のX行には日付をいれてあり、新規データのX列に次月の1日(ついたち)を入力したい。 とりあえずは、1行下に日付を入力したマクロを組んだのですが、その後50行前後もコピーし貼付したいのですが、範囲の選択がうまく出来ません。 途中のセルから最終行のセルの範囲選択のマクロを教えてもらえないでしょうか。 ※Y列はダブルクリックコピーで問題ないので大丈夫です。 例 A列・・・・・・ X列 Y列(検索の関数が入っています) 1 ABC・・・・・・ 2011/6/1 1 ※既存のデータ 2 DDD・・・・・・ 2011/7/1 ※新規データの1列目 3 FFF・・・・・・ ( ) 4 GGG・・・・・・ ( ) 5 ・ 6 ・ 7 ・ 8 ・ 50 ZZZ・・・・・・ ( ) 新規の2列目以降に、新規で作成した日付をコピーし貼付したい。 上記までのマクロを参考に送ります。 教えて下さい。 Sub test() Dim MaxRange '最終行番号 MaxRange = Range("X3").End(xlDown).Row '最終行の設定 Range("X3").Select Selection.End(xlDown).Offset(1, 0).Select 'X列の最終行+1行目を選択 ActiveCell.FormulaR1C1 = "=EDATE(R[-1]C,1)" '同セルに関数入力 Range("X" & MaxRange - 1).Copy '書式の変更(変更前の最終行よりコピー・貼付) Range("X3").Select Selection.End(xlDown).Offset(0, 0).Select Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Range("X3").Select '追加したセルの関数を値に変更 Selection.End(xlDown).Offset(0, 0).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
- ベストアンサー
- その他(ビジネス・キャリア)
- EXCEL VBA行のコピー繰り返し
EXCEL VBAで行の特定の列の数字を読み取りコピーしてすぐに下の行に挿入して次の行へというようなことがしたいと考えております。 例 商品ID1の数量の列の数値を読み取り4なら同じデータを3行追加する。追加後次の項目へ(商品ID2の行へ) VBAで可能でしょうか?
- ベストアンサー
- Excel(エクセル)
- "VBAの繰り返し"についてお尋ねします。VBA初心者です。
"VBAの繰り返し"についてお尋ねします。VBA初心者です。 例えば「A列の最後のセルに何か入れば、その行のB列、C列・・・の一つ上のセルに入っている計算式を繰り返しコピーする」と言うコードを教えていただけたらと思います。A列の最後のセルに何か入ってくれば、その行の一つ上のセルに入っている計算式を繰り返しコピーするというコードです。コード記述の例を教えていただけたらと思います。よろしくお願いします。
- ベストアンサー
- Visual Basic
- Excel 同じ作業の繰り返しについて
どうしようもない質問ですみません。 Excelのセルをコピー ↓ 右のセルに貼り付け ↓ そのまた右のセルに貼り付け ↓ ・ ・ ・ というように右となりのセルに貼り付けを繰り返す作業を行いたいです。 「ドラッグ」は使えないものとします。 ※コピーしたいセルとセルの間を「列を表示しない」設定にしている為。 「→右」⇒ Ctrl+v という作業を永遠にするしか方法が浮かびません。 ちなみに表示していない列を再表示したとすると↓ コピーしたいセル⇒セルはそのまま⇒セルはそのまま⇒コピーしたいセル これはマクロ?で何とかできますか? またマクロやVBA?などは全くの初心者なので、やり方などは詳しくお願いします!!(;_;)
- ベストアンサー
- オフィス系ソフト
- Excelの繰り返し&条件貼付マクロの併用について
本来であれば参考書片手に作成するべき内容だとは思いますが 事務処理の期限が近いのでご質問させてください。 【やりたい事】 現在、Sheet1A行のセルにIF関数で条件式をいれ 正のものは「1」と表示されるようになっている。 Aセルにフラグ「1」が表示されている場合、同列B~ZセルまでをSheet2同セルにコピー。 Aセルにフラグがない場合は上記処理を飛ばす。 これを1列目から600列目まで繰り返すマクロを作成したい。 ※Sheet2に対してコピー処理がされなければ良いので必ずしも列を詰める必要はない また、出来れば今後の拡張を考えて1~600列を可変させたいので 範囲コピーではなく繰り返し条件を用いて上記マクロ作成したいと考えています。 単純にネット上で探した繰り返しと条件貼付マクロを併用してみたのですが 構文エラーは表示されないものの処理が行われません。 Sub 貼付マクロ() For i = 1 To 600 If "A & i "= 1 Then Sheets("Sheet1").Range("B & i: Z & i").Copy Sheets("Sheet2").Range("B & i: Z & i").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False Else End If Next i End Sub Excelマクロ自体、通常の記録マクロと WEBに公開されているマクロのセル変更での利用程度しかしたことがない為 根本的な間違いがあると思いますがご教示いただけないでしょうか? よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル(2003)のコピーと貼り付けについて。
エクセル(2003)のコピーと貼り付けについて、操作を自動化したいです。 VBA初心者です。 同じフォルダ内にAファイルとBファイルがあります。 Aファイルにはシート1からシート4まで有り、シート1とシート2にシート3と4を比較したデータを表示させています。 シート1とシート2はA1からG1まで項目として、A2からデータが表示されます。約20行程度、表示される行数は毎日変わります。 Bファイルにはシート1しかありません。A1からG1まで項目とし、A2からデータが表示されています。約100行。毎日変わります。 (Aファイルのシート1とシート2の表示されているデータを貼り付けていく為) Aファイルのシート1に表示されているデータ(A2から)を仮に20行としBファイルの101行目(入力されているデータのすぐしたの行)に貼り付け、Aファイルのシート2に表示されているデータ(A2から)を仮に20行とし、120行目に貼り付け。 毎日コピーする範囲や貼り付けをするセルが変わっていく、固定の範囲、セルではない。この作業を毎日、コピー貼り付けで操作しています。 この操作をラクにしたいです。 困っていることは、コピーする範囲が毎日変わってしまう。(行数が増減するため) 貼り付けるセルも変わってしまう、(行数が増減するため) 分かりずらい説明になっていましたら、申し訳ないです。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- EXCEL 指定のフォルダ内にあるエクセルをコピー
どなたかVBAの記述(コード)を教えて下さい。 指定のフォルダ内にあるエクセル(コピー元)を開きコピー、データを順次、指定のエクセル(コピー先)のシートの上から順番に貼付していきたいのです。コピー貼付が終わったら、コピー元のファイルは別のコピー済のフォルダへ移したいです。 フォルダ名は、自分で指定できますが、コピー元のエクセルのファイル名とシート名は一定ではありません。(コピー元ファイルはシート1枚のみ)。セル範囲は、A~F列、行は毎回変動するので、一番下の行を判定する必要があります。 コピー先のファイルは、指定のシート(※)に上から順番に貼り付けをしたいです。 (※セルに入力して指定したいです。) 不足事項などがありましたら、ご指摘いただけると助かります。 よろしくお願いいたします。 なお、簡単な関数のVBAは理解して使えるのですが(IF~ End If、For ~Next 等)、 イベントのプロシージャーなどが今だ理解できず、自分では書くことができません。 そのため。多少コードが長くなってもいいので、イベント・プロシージャーをなるべく使わない書き方のほうが自分で修正することができ、助かります(イベントを使わないと難しい処理でしょうか・・・)。
- ベストアンサー
- オフィス系ソフト
- EXCELでVBAをつかったコピーの高速化
EXCELのVBAで、A1からA1000まで乱数をセルに書き込むと8秒かかるのですが、これを高速化することが可能でしょうか? For 行番号 = 1 To 1000 Cells(行番号, 1).Value = Int((10 * Rnd) + 1) Next セルに書き込まずに、1000個の乱数を発生させると1秒もかからないので、8秒のうちのほとんどの時間は、セルへの書込み時間にとられています。 EXCELで列のコピーをした場合は、セルへの書込み時間が早いので、1000個の乱数の結果をいったんメモリに書き込み、列のコピーのように、セルにコピーができれば、高速化が可能かなと思うのですが、VBAでできるのでしょうか?よろしくお願いします。 For 行番号 = 1 To 1000 Int((10 * Rnd) + 1)をメモリに書込み Next メモリの内容をA1:A1000にコピー
- ベストアンサー
- オフィス系ソフト
- エクセル2007の行コピー
従来の2003を使用していたときは、複数行を選択してコピー&貼り付けを行ったとき、選択範囲にオートシェイプやテキストボックスなどが含まれていた場合、すべて貼付されたのですが、エクセル2007では、貼付されずに、セル自体しかコピーできません。 オブジェクトのプロパティより、「セルに合わせて移動やサイズ変更をする」が選択されていてもダメでした。 2007ではできないような仕様なのでしょうか?
- ベストアンサー
- その他MS Office製品
お礼
早速のご回答ありがとうございました。本日、会社で試したところ解決できました! >A16セルをA17~A30に貼り付け!としています。 表記が間違っていましたが対応いただき感謝しています