| 
    
     |  | こんにちは。かみちゃん です。 
 > うまく自分の実現したいことを伝えられず
 
 最初は、
 
 > Sheet1のE列から3列飛ばしでBW列まである数字をコピーして、Sheet2に貼り付ける処理
 > を行うことを3から100行までFor文で実行したい
 
 ということなのですが、
 Range("E3,I3,M3(省略)・・・・・,BW3").Select
 となっていたり、
 Sheets("sheet3").Select
 となっていたり、
 
 > 貼り付けをG列・I列・K列と処理したい
 
 ともおっしゃっていて、初心者さんのコードをできるだけ崩さずに修正する方法を考えて
 いたのですが、時間もなくなってきたので私なりの方法を提案したいと思います。
 
 Sub Sample()
 Dim i As Long
 Dim j As Long
 
 For i = 3 To 100
 Sheets("Sheet1").Cells(1, 1).Value = i
 If Sheets("Sheet1").Cells(i, 1).Value <> "" Then
 For j = 5 To 75 Step 4
 '貼り付けをG列・I列・K列と処理する
 Sheets("Sheet1").Cells(i, j).Copy Sheets("Sheet2").Cells(i, j + 2 + Int((j - 5) / -4) * 2)
 Next
 End If
 Next
 MsgBox "終了"
 End Sub
 
 For j = 5 To 75 Step 4
 '貼り付けをG列・I列・K列と処理する
 Sheets("Sheet1").Cells(i, j).Copy Sheets("Sheet2").Cells(i, j + 2 + Int((j - 5) / -4) * 2)
 Next
 
 のあたりは、変数をもうひとつ用意して、処理したほうがわかりやすいかもしれませんね。
 
 Dim k As Long
 
 k = 7
 For j = 5 To 75 Step 4
 '貼り付けをG列・I列・K列と処理する
 Sheets("Sheet1").Cells(i, j).Copy Sheets("Sheet2").Cells(i, k)
 k = k + 2
 Next
 
 |  |