• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロでコピーしたセルと同じ数だけコピーしたい)

マクロでコピーしたセルと同じ数だけコピーしたい

このQ&Aのポイント
  • マクロを使って、特定のシートの特定のセル範囲をコピーし、別のシートに連続して貼り付けたいです。
  • 一部の条件に基づいて特定の値をコピーし、特定のセルに貼り付けたいです。
  • 作成済みのマクロを使用して、特定のセル範囲を連続してコピーし、別のシートに貼り付けたいです。

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

  • ベストアンサー
  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.2

>教えていただいたコードを、Next iの後ろに追記しました。 >これ自体が間違っているかもしれませんが、うまくいきません。 はい。その位置では正しい動作はしません。 変数宣言は一般にコードの最初に固めます。作成済みコードでも変数宣言していますから、その前後に記述してください。 また、肝心のFor~Nextループは作成済みでの貼り付け後、最終行の更新前に実行するようにしてください。 >二つ作成していて、行列を入れ替えての貼り付けを試していた時の >コードです(今回はないものとして考えていきたいと思います) に対し、サンプルコードは繰り返し回数が一回多いはずです。調整してください。

uchin55
質問者

お礼

アドバイスを参考に無事完成しました。 以下、修正後の記述です。 何度もありがとうございました。 Sub test() Dim sn As String Dim B2V, B3V, Rep d = 6 For i = 3 To 15 If Worksheets("集計").Range("B" & i) <> "" Then sn = Worksheets("集計").Range("B" & i) Worksheets(sn).Range("C10:F12").Copy Worksheets("集計").Range("F" & d + 1).PasteSpecial Paste:=xlValues B2V = Worksheets(sn).Range("b2").Value B3V = Worksheets(sn).Range("b3").Value For Rep = 1 To 3 Worksheets("集計").Cells(d + Rep, 5).Value = B2V Worksheets("集計").Cells(d + Rep, 4).Value = B3V Next Rep d = Worksheets("集計").Range("F65536").End(xlUp).Row End If Next i End Sub

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

マクロの記録で判ることか、少し修正すればよいことでは。同じような質問を繰り返さないためにも、マクロの記録をとってどの部分を変えるべき(相対化すべき)か自分で考えてから質問すべきように思うが。

全文を見る
すると、全ての回答が全文表示されます。
  • Sinogi
  • ベストアンサー率27% (72/260)
回答No.1

作成済みコードは希望の動きなんですか? 質問の内容と一部あっていません。 >Worksheets("集計").Range("F" & d + 1).PasteSpecial Paste:=xlValues, Transpose:=True の Transpose:=True のことを指しています。 提示されたコードが正しいとしてサンプル提示します。 Dim B2V, B3V, Rep B2V = Worksheets(sn).Range("b2").Value B3V = Worksheets(sn).Range("b3").Value For Rep = 1 To 4 Worksheets("集計").Cells(d + Rep, 5).Value = B2V Worksheets("集計").Cells(d + Rep, 4).Value = B3V Next Rep どこに追記するかは自分で考えてください

uchin55
質問者

補足

>質問の内容と一部あっていません。 すいません。 二つ作成していて、行列を入れ替えての貼り付けを試していた時の コードです(今回はないものとして考えていきたいと思います) 教えていただいたコードを、Next iの後ろに追記しました。 これ自体が間違っているかもしれませんが、うまくいきません。 結果 空白 空白 ● ● ● ● 空白 空白 ● ● ● ● 空白 空白 ● ● ● ● 空白 空白 ● ● ● ● 空白 空白 ● ● ● ● 空白 空白 ● ● ● ● あ  い あ  い あ  い 入力したい上のリスト部分には空白のみで、何も入りません。 リストが終わった下部にのみコピーされます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelマクロについて(セルのコピー)

    今、マクロで自動的にセルのデータを別シートに貼り付けるというものを作っています。 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub これで、sheet1のA2からsheet2のA1にコピーできるのですが、 Private Sub コピー定義() Worksheets("sheet1").Activate 'sheet1をアクティブにする コピー元行 = 2 コピー先行 = 1 コピー元行 = 2 コピー先行 = 1 コピー元セル = "A" & コピー元行 コピー先セル = "A" & コピー先行 コピー元セル = "B" & コピー元行 コピー先セル = "B" & コピー先行 Worksheets("sheet1").Range(コピー元セル).Copy _ Destination:=Worksheets("sheet2").Range(コピー先セル) End Sub とすると、B2の項目しかコピーされません。複数のセルを一度にコピーするマクロの作り方をご存じの方、ご伝授下さい。

  • エクセルマクロでセルのコピー

    困ってしまったので質問させてください Sub 一定秒おきに実行() Dim i As Integer  For i = 1 To 10   Application.Wait Now() + TimeValue("00:00:10")  コピーして別のシートに貼り付ける Next End Sub ---------------------------------- Sub コピーして別のシートに貼り付ける() Worksheets("sheet1").Activate Range("A1:G1").Copy ActiveSheet.Paste Destination:=Worksheets("sheet").Range("??") End Sub ----------------------------------- 以上のようなコードがありますが Sheet1のA1:G1を10秒おきにSheet2の1行、2行、3行 と順番にコピーする Sub コピーして別のシートに貼り付ける() のコードを教えてください よろしくお願いいたします

  • 教えてマクロの記述?

    シート1に記述した内容をシート2に一覧形式で入力するマクロを以下の通り作成しました。 シート1に記述した内容を、別のブックのシートに一覧形式で入力していくマクロに変更するには どのようにマクロの記述をすれば宜しいのでしょうか?マクロの初心者にも分るようにご教授 いただければ助かります。よろしくお願いします。 Sub 入力() Dim LastRow As Long With Worksheets("sheet2") LastRow = Worksheets("sheet2").Range("B" & Rows.Count).End(xlUp).Row + 1 .Range("B" & LastRow).Value = Worksheets("sheet1").Range("B1").Value .Range("C" & LastRow).Value = Worksheets("sheet1").Range("B3").Value .Range("D" & LastRow).Value = Worksheets("sheet1").Range("B5").Value .Range("E" & LastRow).Value = Worksheets("sheet1").Range("B7").Value .Range("F" & LastRow).Value = Worksheets("sheet1").Range("B9").Value .Range("G" & LastRow).Value = Worksheets("sheet1").Range("B11").Value End With End Sub

  • VBAでセルのコピーをすると、エラーになる

    =IF(COUNTIF('5月'!B4:I13,E13)=0,"",COUNTIF('5月'!I:I,E13))というセルを コピーして、別のシートのセルに貼り付けたのですが、値が「0」の場合「””」が セルに張り付いてしまい、その後の計算ができません。 「””」を本当の空欄にするにはどうしたらいいのでしょうか? Sub 転記() Dim sh1 As Worksheet Dim sh2 As Worksheet Dim SN As String SN = Month(Now()) Set sh1 = Sheets(SN) Set sh2 = Sheets("差出票") sh1.Range("A35").End(xlUp).Offset(1) = sh2.Range("B9") sh1.Range("A35").End(xlUp).Offset(0, 1) = sh2.Range("F13") sh1.Range("A35").End(xlUp).Offset(0, 2) = sh2.Range("F14") sh1.Range("A35").End(xlUp).Offset(0, 3) = sh2.Range("F15") sh1.Range("A35").End(xlUp).Offset(0, 4) = sh2.Range("F16") sh1.Range("A35").End(xlUp).Offset(0, 5) = sh2.Range("F17") sh1.Range("A35").End(xlUp).Offset(0, 6) = sh2.Range("F18") sh1.Range("A35").End(xlUp).Offset(0, 7) = sh2.Range("F19") End Sub

  • エクセル マクロ:チェックボックス コピー3

    前回、質問した件で、追加で質問させていただきます。 前回の質問は、sheet2のチェックボックスによって、sheet1の列をコピーして、sheet3にペーストするという内容でした。 keithin様からご回答いただき問題は解決しましたが、修正を加えなくてはならなくなりました。 sheet2のチェックボックスによってsheet1の列とsheet4の列をコピーして、sheet3にペーストしようと頑張りましたが、解決できそうにありません。 尚、sheet1とsheet4の行数は同じで、sheet1とsheet4のA列は同じ内容なので必要ありません。 下記が前回のベストアンサーです。 private sub CommandButton1_Click()  dim res as range  dim rmax as long  dim i as integer  dim flg as boolean  rmax = worksheets("Sheet1").range("B1").end(xldown).row  set res = worksheets("Sheet1").range("A1:A" & rmax)  for i = 1 to 20   if worksheets("Sheet2").oleobjects("CheckBox" & i).object.value then    set res = union(res, worksheets("Sheet1").range("A1:A" & rmax).offset(0, i))    flg = true   end if  next i  if not flg then  msgbox "NO CHECK"  exit sub  end if  res.copy  worksheets("Sheet3").range("A1").pastespecial paste:=xlpastevalues  worksheets("Sheet3").select end sub keithin様 無断で借用させていただきました。申し訳ございません。

  • エクセル2010 マクロで値のみコピー

    こんばんは、エクセル2010を使っています。 マクロでデータを値のみをコピーしたいのですが、うまくいきません。 文は 以下の様なものです。 Sub ボタン1_Click() Worksheets("Sheet4").Range("e1").Copy Worksheets("sheet2").Range("b1").PasteSpecial Paste:=xlValues End Sub マクロの画面を閉じようとした時に、Pasteの部分が選択され  コンパイルエラー 修正候補:ステートメントの最後 と言うダイアログボックスが出てしまいます。 ご存知の方教えて頂けないでしょうか、よろしくお願いします。 ※ ちなみに Worksheets("Sheet4").Range("e1").Copy Worksheets("sheet2").Range("b1")  ならちゃんとコピーされるのですが、コピー元の数式がコピーされるので、値のみをコピーしたいのです。

  • 他のブックでマクロを実行するには?

    以下のマクロを実行すると同一ブック内の他のシートに入力 されますが、これを他のブックのシートに入力されるように するには、具体的にどのようにすればいいのでしょうか? ご教授ください。 ---------------------------------------------------------------- Sub 入力() Dim LastRow As Long With Worksheets("sheet2") LastRow = Worksheets("sheet2").Range("B" & Rows.Count).End(xlUp).Row + 1 .Range("B" & LastRow).Value = Worksheets("sheet1").Range("B1").Value .Range("C" & LastRow).Value = Worksheets("sheet1").Range("B3").Value .Range("D" & LastRow).Value = Worksheets("sheet1").Range("B5").Value .Range("E" & LastRow).Value = Worksheets("sheet1").Range("B7").Value .Range("F" & LastRow).Value = Worksheets("sheet1").Range("B9").Value .Range("G" & LastRow).Value = Worksheets("sheet1").Range("B11").Value End With End Sub

  • エクセルのマクロ(データの出力について)

          12345678910・・・・ ← 日付 田中    1 1  1    中村     1  1   鈴木    11111    ・  ・  ・ 上のようになっている表を下記のように変換したいのですが、マクロがうまく書けません。 A B C D E F G H I J K L  M   1   2   3   4   5   6  7  ← 日付   田中  中村  田中  鈴木  中村  田中   鈴木  鈴木  鈴木      鈴木 Sub test01() d = Worksheets("Sheet1").Range("A65536").End(xlUp).Row r = Worksheets("Sheet1").Range("IV2").End(xlToLeft).Column k = 4 '新規作成用の行ポインター For j = 2 To r For i = 3 To d If Worksheets("Sheet1").Cells(i, j) = 1 Then Worksheets("新規作成用").Cells(k, 2 * (j - 6)) = Worksheets("Sheet1").Cells(i, 2) k = k + 1 End If Next i Next j End Sub ここまで書いていきづまってしまいました。どなたかご指南ください。

  • マクロ 別シートへコピー

    いつも回答して頂きありがとうございます。 Worksheets("一覧").Paste Range("C3")と記述したら、エラーもかからずうまく貼り付け出来るが、 Worksheets("一覧").Paste Range(Cells(d,3))と記述したらエラーが発生してしまします。どうしたら上手くいくでしょうか? 下記に作成中のマクロを記載しておきます。 御指導の方よろしくお願いいたします。 Sub シートを繰り返し選択する(2)() Dim d As Integer Dim cVx As Integer d = 3 cVx = Range("IV7").End(xlToLeft).Column Worksheets(Worksheets("一覧").Cells(d, 2).Value).Range("C7:X7").Copy Worksheets("一覧").Paste Range(Cells(d, 3)) End Sub

  • マクロで、カット→”値”だけをペーストで、

    セル:B2 は、1(数字) C2は、2(数字) D2は、(式)=B2+C2 が入っています。すなわち、3 です。 B2から下にある数行をカットして”値”だけ別表の下に貼り付けようとしますが、 ( Copy → ペーストなら下記のマクロで出来ますが ) Sub aaa() With ActiveSheet .Range("B2", .Range("D65536").End(xlUp)).Copy _ Destination:=Worksheets("Sheet2").Range("F65536").End(xlUp).Offset(1, 0) End With End Sub Copy を Cut にすると、動きません。 どこがミスしているかを教えていただきたくお願いします。 マクロ初心者です。