if、elseを使って問題を解いてみました。 変数はfor next 構文の外で設定していれば、構文の下のコードには反映されないと勝手に思っていたのですが、 nextの下にコードを書いても、変数リセットの指示を小人ちゃんに出さなければ元に戻らないんですね!
Sub rensyu2()
Dim ban
Dim gyo
Dim cno
ban = 0
cno = 1
For gyo = 4 To 19
If Range("D" & gyo).Value <> Range("D" & gyo - 1).Value Then
ban = ban + 1
cno = 1
Else
cno = cno + 1
End If
Range("B" & gyo).Value = ban
Range("C" & gyo).Value = cno
Next
End Sub
2016/12/16 22:08
ゲストさんのコメント
(コメントID: 4177)
受講生 さん:
>変数はfor next 構文の外で設定していれば、構文の下のコードには反映されないと勝手に思っていたのですが、 >nextの下にコードを書いても、変数リセットの指示を小人ちゃんに出さなければ元に戻らないんですね!
Sub rensyu2()
Dim ban
Dim gyo
Dim cno
ban = 0
cno = 1
For gyo = 4 To 19
If Range("D" & gyo).Value <> Range("D" & gyo - 1).Value Then
ban = ban + 1
cno = 1
Else
cno = cno + 1'←インデントいれましょう。
End If
Range("B" & gyo).Value = ban
Range("C" & gyo).Value = cno
Next
End Sub
受講生さんの投稿
(投稿ID: 2744)
変数はfor next 構文の外で設定していれば、構文の下のコードには反映されないと勝手に思っていたのですが、
nextの下にコードを書いても、変数リセットの指示を小人ちゃんに出さなければ元に戻らないんですね!
ゲストさんのコメント
(コメントID: 4177)
>変数はfor next 構文の外で設定していれば、構文の下のコードには反映されないと勝手に思っていたのですが、
>nextの下にコードを書いても、変数リセットの指示を小人ちゃんに出さなければ元に戻らないんですね!
いろいろ確認しながら作業すると、よい学びになりますね。
このあたりの挙動は言語によって微妙に異なります。
以下のプログラム、一箇所だけコメントしておきます。ご確認ください。