• ベストアンサー

【VBA】コピー&複数個所のペースト繰り返し

前回と同じ質問ですが、説明が足りなかったので画像を添付いたしました。 添付画像のように、1つの値をコピーし、別シートの複数個所(同じ列の違う行)へ順次ペーストしたいのですが、貼付けデータやペーストする回数が増えた場合でも対応できるようなVBAを教えてください。 コピペする条件としては、MsgBox関数を使い「コピーするか?」で「はい」を選択すると、任意のセルにデータがコピペされます。 よろしくおねがいいたします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! お示しの画像では「コピー元シート」のB7以降は最大5名までみたいですので、単純にB7から5行分だけループさせます。 あとは単純に行合わせだけの問題だと思います。 標準モジュールで Sub Sample1() Dim i As Long, k As Long, cnt As Long, wS As Worksheet Set wS = Worksheets("貼付シート") If MsgBox("コピーしますか?", vbYesNo) = vbYes Then With Worksheets("コピー元シート") For i = 7 To 11 cnt = cnt + 1 For k = 9 + (cnt - 1) * 2 To 89 Step 18 wS.Cells(k, "B") = .Cells(i, "B") Next k Next i End With End If End Sub こんな感じではどうでしょうか?m(_ _)m

HNK1001
質問者

お礼

お礼早々にご回答くださり誠にありがとうございます。 ご教示いただいたVBAで動作確認しましたら、希望の結果を得ることができました! 本当にありがとうございました(#^.^#) 私は、for ~to ~stepと代入の計算が苦手なので、とても勉強になります!

関連するQ&A

  • 【VBA】コピー&複数個所のペースト繰り返し

    下記のように、1つの値をコピーし、別シートの複数個所(同じ列の違う行)へ順次ペーストしたいのですが、貼付けデータやペースト箇所が増えた場合でも対応できるようなVBAを教えてください。 よろしくおねがいいたします。 ========================================================= Sub コピペ() '←1人目をコピー Worksheets("“コピー元シート”").Range("B7").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B9", "B37", "B65", "B93", "B121", "B149", "B177").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←2人目をコピー Worksheets("“コピー元シート”").Range("B8").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B11", "B39", "B67", "B95", "B123", "B151", "B179").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←3個の値をコピー Worksheets("“コピー元シート”").Range("B9").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B13", "B41", "B69", "B97", "B125", "B153", "B181").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←4個の値をコピー Worksheets("“コピー元シート”").Range("B10").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B15", "B43", "B71", "B99", "B127", "B155", "B183").Select Selection.PasteSpecial Paste:=xlPasteFormulas '←5個の値をコピー Worksheets("“コピー元シート”").Range("B11").Select Selection.Copy '←貼付け Worksheets(“貼付シート”).Range("B17", "B45", "B73", "B101", "B129", "B157", "B185").Select Selection.PasteSpecial Paste:=xlPasteFormulas End Sub

  • excel のコピー&ペーストについて

    会社で表(Excel2000)を作らなければならなくなりました。 3列を一つの区切りとして10ケ並んでいる表で、1行目の1・4・7・・・・・を別のシートに抽出しました。これをコピーして1行目の2・5・8・・・・次に3・6・9・・・とコピー&ペーストしてゆきたいのですが、単純にコピペすると全然違うセルをペーストしてしまいます。一つ一つ指定してゆくと2日から3日この表を作るのにかかってしまうと思います。説明下手で申し訳ありませんが、これに使える関数とか方法があれば教えて下さい。

  • VBAで特定行へのコピーを指定した回数繰り返す処理をしたいが。

    行2を行1へ、コピー&ペーストする。 行3を行1へ、コピー&ペーストする。 行4を行1へ、… というように、行1へのコピー&ペーストを、指定した回数行う、 という処理をVBAのコードで書きたいのですが、本をみてもよくわかりません。 回数の指定は、特定セルに入力した値を取得するような形でやりたいのです。 具体的に、こう書けばできるよ、といった回答をお願いいたします。

  • Excelのコピー&ペーストについて

    関数や計算式等をコピペしたいのではなく、関数や計算式等でセルに表示された文字自体をコピペしたいのですが方法はありますか? <例> Sheet1のA1に「=B1」と入力して、B1が2だったためセルには「2」と表示されます。 そのセルをコピーしてSheet2のA1にペーストすると「=B1」となります。 そうじゃなくて、セルに表示された「2」自体をコピペしたいんです。 皆様の知識をお貸しください。

  • エクセル(VBA)のブック間でのコピーペーストについて

    こんにちは。VBA入門レベルのものですが、質問させてください。 ブックAとブックBを開いた状態にし、 ・ブックA⇒VBAを組む&データ貼付け先 ・ブックB⇒データコピー元 ブックBの特定セル(例:D10)からブックAの特定セル(例:E12)にコピー⇒貼付 する方法を探しています。 なお、ブックBは、ブック名とシート名が都度変わるので、「ブックAではない方の開いているエクセルファイルからデータをコピーし、ブックAに貼付ける」の構文にしたいです。 また、コピペの他に数式(イコール)で飛ぶ方式でもかまいません。 この内容でのVBAの記述方法が分かる方、どなたか教えて頂けますでしょうか。 すみませんがよろしくお願いいたします。 ※エクセル2003です。

  • EXCEL VBA コントロールのコピー&ペースト

    いつも活用させて頂いております。 excelのvbaで、コピー元のセルを範囲指定して、ペーストするロジックを書いています。 コピー元のセルには、コントロール(テキストボックスなど)が配置されているのですが、これを一緒にコピー&ペーストする事はできないでしょうか? 一緒にできないのであれば、セルのコピー&ペーストのあとにコントロールのコピー&ペーストができるような方法があれば、ご教授願います。 よろしくお願い致します。

  • Excel 開いているセルにペーストするには

    よろしくお願いします。 複数回コピぺをしたいのですが、一度目はコピーしたそれぞれのデータをそれぞれA1、B1、C1にペーストとvbaで指定すればそのセルから下方に向かってペーストされる様には出来たのですが、2回目以降に例えばA1358、B 1358、C 1358まで入力されているセルの一つ下の1359の位置からABC個々にペーストする様にするにはどの様にしたら良いのでしょうか? 散々ネットで探しているのですが、A1を指定して…などの関数の説明しか見つからずこちらに投稿しました。 ご教授下さい。

  • VBA コピー&ペースト

    次の作業をVBAでマクロを組みたいのですが、どのような構文にすればよいでしょうか。VBA初心者のため、お知恵を拝借させてください。 [目的] 1.ブックA(コピー先)に設定したハイパーリンク先のブックB(コピー元)へジャンプ 2.ブックBへジャンプ後、特定のセルの値をコピー 3.コピーした値をブックAの特定セルへペースト 4. 1.~3.の作業をリピート 対象は、上の作業が未完(ブックAのペースト先のセルがブランク)のもの [詳細] ・ブックB(リンク先)の保存先はサーバー ・リンク先はブックBの特定のシート ・ブックAで設定したハイパーリンクのセルの値がリンク先のシート名 ・ブックBは複数、リンク先のシートも複数(ハイパーリンクごとにリンク先が異なる) ・ブックBにはマクロが設定、開くたびにマクロ有効無効のメッセージ(Excel2003のため) ・コピペする項目は3つ ・ブックA,Bともに開いた状態で、2.~4.のリピートというマクロでも構いません。 以上ですが、他に情報が必要でしたらお申しつけください。 よろしくお願いいたします。

  • 別のexcelにペーストしたい

    お世話になります。 ExcelAとExcelBがあります。 ExcelAから、「複数セルを選択」して、Excelbに「貼付け」する処理の 一部をマクロ(vba)で作成したいと思っております。 具体的ステップとして (1)手動で、ExcelAの任意の連続したセルを選択してコピー (2)ExcelBに移動して、貼り付けしたいセルを選択 (3)(1)で取得したデータをペースト です。 (3)の箇所を「ExcelAのマクロ」を呼び出して実現したいと 思っているのですが、どのようにマクロ(VBA)を記載したら実現できるでしょうか? お手数ですが宜しくお願い致します。

  • エクセルの関数、VBA? に関する質問です

    エクセルの関数、VBA? に関する質問です 添付画像を大きく変更しました。 添付画像のように、 複数のセルの内容(C列)を一つのセルに改行して 入力する場合(M列)はどのような関数にすればよいのでしょうか。 そもそも関数では実現できないのでしょうか 現状はいったんテキストエディタにコピペした後に 再度それを一つのセルにペーストしています。 何か良い方法があれば、教えて頂けると助かります。 よろしくお願いします。

専門家に質問してみよう