• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(VBA) FOR文の修正をお願いします。)

(VBA) FOR文の修正をお願いします。

このQ&Aのポイント
  • シート(DATA)の内容をシート(Chapter)に順番(FOR文)に書き出したい。
  • 現在のコードではFOR文の変数とSTEPの値が間違っている。
  • 修正したいコードはそのままではなく、特定の形式に書き換える必要がある。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

参考に Dim WS As Worksheet, EndLow As Long Dim I As Long, J As Long Set WS1 = Worksheets("DATA") EndLow = WS1.Cells(Rows.Count, "E").End(xlUp).Row With Worksheets("Chapter") For I = 3 To EndLow J = J + 1 .Cells(J, "A") = "CHAPTER" & WS1.Cells(I, "H") & "=" & Format(WS1.Cells(I, "E").Value, "h:mm:ss") J = J + 1 .Cells(J, "A") = "CHAPTERNAME=" & WS1.Cells(I, "G") Next End With

NuboChan
質問者

お礼

watanabe007さん、回答ありがとうございます。 変数(J)の使い方は、全く考えが及びませんでした。 No.2の回答も参考になりました。 おかげさまで無事解決しました。

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

With Worksheets("Chapter") For I = 1 To EndLow - 2 .Cells(I + .Rows(I).Row - 1, "A") = "CHAPTER" & WS1.Cells(I + 2, "H") & "=" & Format(WS1.Cells(I + 2, "E").Value, "h:mm:ss") .Cells(I + .Rows(I).Row, "A") = "CHAPTERNAME=" & WS1.Cells(I + 2, "G") Next End With でいけると思いますが、変に計算するより 単純に J = 1 With Worksheets("Chapter") For I = 1 To EndLow - 2 .Cells(J, "A") = "CHAPTER" & WS1.Cells(I + 2, "H") & "=" & Format(WS1.Cells(I + 2, "E").Value, "h:mm:ss") .Cells(J + 1, "A") = "CHAPTERNAME=" & WS1.Cells(I + 2, "G") J = J + 2 Next End With とした方が、変更になったときに対処しやすいと思います。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

こちらも For I = 3 To EndLow .Cells((I - 3) * 2 + 1, "A") = "CHAPTER" & WS1.Cells(I, "H") & "=" & Format(WS1.Cells(I, "E").Value, "h:mm:ss") .Cells((I - 3) * 2 + 2, "A") = "CHAPTERNAME=" & WS1.Cells(I, "G") Next