• 締切済み

マクロの繰り返しコード

たとえば繰り返す回数を仮にA1セルの数値を参照 してその分だけ繰り返す コードの書き方を教えてください 例として B1からB10の数値をコピーしてD1に張り付けC1に1列追加。 この作業を(A1)の回数分だけ繰り返す。 初心者です、ご回答のコードをそのまま貼り付けて利用したいので よろしくおねがいします

みんなの回答

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.4

例が例なのかやりたい事なのかわかりませんが、例の処理内容で。 不明なところはコメントのカッコ内とおり解釈しています。 Sub sample() Dim i As Long 'A1セルの数値を参照 してその分だけ繰り返す For i = 1 To Range("A1").Value     'B1からB10をコピーして     Range("B1:B10").Copy     '(数値で)D1に張り付け     Range("D1").PasteSpecial xlPasteValues     'C1(セルを列に拡張した範囲の左側)に1列追加     Range("C1").EntireColumn.Insert Next i End Sub

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

質問の意味が、エクセル的によくわかりません。VBAを使う前に、エクセルの基礎的なことを勉強してからでしょう。文章化が不完全。 >繰り返す回数を仮にA1セルの数値 A1セルの値が数値5の場合なら Sub test01() x = Range("A1") For i = 1 To x MsgBox "AAA" & i '実際は、処理内容のコードをここへ挟む Next i End Sub >例として B1からB10の数値をコピーしてD1に張り付けC1に1列追加 ここが意味不明。 上記の変数 i で 「コピー(元)する」場所を決定したり(一定で変わらない場合もあるだろうが)、張り付ける「列」(コピー先)(番号で決める)も i  を用いて、式的に表現できなくてはならない。 列を増やして、そこに張り付けたいなら、貼り付け先は5回を通じて、列番号は変わらない(変えなくても良い)場合もあるだろうが。 しばらくは、色々経験する必要があろうと思うが、アドバイスする人が必要だろう。でなければVBAのスクールに通うとか。WEB上に質問するにも、それなりの勉強や経験が必要です。

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.2

こんな感じでしょうか。 Option Explicit Public Sub MyCopy() Dim a As Integer Dim i As Integer With ActiveSheet a = .Range("A1").Value For i = 1 To a .Range(.Range("B1"), .Range("B10")).Select Selection.Copy .Range("D1").Select .Paste .Columns("C").Insert Next i End With End Sub

  • kkkkkm
  • ベストアンサー率66% (1721/2591)
回答No.1

> B1からB10の数値をコピーしてD1に張り付けC1に1列追加。 10個のデータをひとつのセルにコピーするということ? C1に一列追加とは?C1はセルで列ではありません。 コピペで使いたいのでしたらもっと具体的に書かないと使えないと思いますよ。 やりたいことをマクロの記録で記録してそのコードをA1の数値分繰り返す Sub Test() Dim i as Long For i=1 to Range("A1").value ここから 記録でできた Sub Macro1()とEnd Sub の間にあるコードをいれたらできると思いますよ。 ここまで Next End Sub

関連するQ&A