Sub siharairisuto() Dim migi Dim goukei Dim hidari Dim konrui Dim sourui For hidari = 4 To 9 goukei = 0 For migi = 4 To 10 If Range("I" & migi).Value = Range("B" & hidari).Value Then goukei = goukei + Range("J" & migi).Value 'End If 'これが正解(A) 'Next 'これが正解(B) Range("D" & hidari).Value = goukei Range("E" & hidari).Value = Range("C" & hidari).Value + goukei End If '条件が合致していると、End Ifは関係なくfor Next内を進む。(C) '条件が合致していないとEnd If外に進む。 konrui = konrui + goukei sourui = sourui + Range("E" & hidari).Value Next(D) Next Range("D10").Value = konrui Range("E10").Value = sourui End Sub すいません、コピーを張り付けることができるなら今後そうします。質問の意味が自分でも不明です。 End ifが(C)の位置だとてっきりIfにもどるものと思って言いました。 If then end ifは条件が一致すると常にそのまま進むものであるのでしょうか。 If thenだけでend if を使用しない構文(多分?)の場合とはどのように使い分けるのでしょうか。
2015/01/12 03:59
ゲストさんのコメント
(コメントID: 2158)
井上 聡 さん:
まだおかしいね。
Next(D)
のところが構文エラーです。
ということで、
> If then end ifは条件が一致すると常にそのまま進むものであるのでしょうか。 > If thenだけでend if を使用しない構文(多分?)の場合とはどのように使い分けるのでしょうか。
Sub siharairisuto()
Dim migi
Dim goukei
Dim hidari
Dim konrui
Dim sourui
For hidari = 4 To 9
goukei = 0
For migi = 4 To 10
If Range("I" & migi).Value = Range("B" & hidari).Value Then
goukei = goukei + Range("J" & migi).Value
'End If 'これが正解(A)
'Next 'これが正解(B)
Range("D" & hidari).Value = goukei
Range("E" & hidari).Value = Range("C" & hidari).Value + goukei
End If '条件が合致していると、End Ifは関係なくfor Next内を進む。(C)
'条件が合致していないとEnd If外に進む。
konrui = konrui + goukei
sourui = sourui + Range("E" & hidari).Value
Next(D)
Next
Range("D10").Value = konrui
Range("E10").Value = sourui
End Sub
>すいません、コピーを張り付けることができるなら今後そうします。質問の意味が自分でも不明です。 >End ifが(C)の位置だとてっきりIfにもどるものと思って言いました。 >If then end ifは条件が一致すると常にそのまま進むものであるのでしょうか。 >If thenだけでend if を使用しない構文(多分?)の場合とはどのように使い分けるのでしょうか。 >
井上 聡さんの投稿
(投稿ID: 1014)
Dim migi
Dim goukei
Dim hidari
Dim konrui
Dim sourui
For hidari = 4 To 9
goukei = 0
For migi = 4 To 10
If Range("I" & migi).Value = Range("B" & hidari).Value Then
goukei = goukei + Range("J" & migi).Value
'End If 'これが正解(A)
'Next 'これが正解(B)
Range("D" & hidari).Value = goukei
Range("E" & hidari).Value = Range("C" & hidari).Value + goukei
End If '条件が合致していると、End Ifは関係なくfor Next内を進む。(C)
'条件が合致していないとEnd If外に進む。
konrui = konrui + goukei
sourui = sourui + Range("E" & hidari).Value
Next(D)
Next
Range("D10").Value = konrui
Range("E10").Value = sourui
End Sub
すいません、コピーを張り付けることができるなら今後そうします。質問の意味が自分でも不明です。
End ifが(C)の位置だとてっきりIfにもどるものと思って言いました。
If then end ifは条件が一致すると常にそのまま進むものであるのでしょうか。
If thenだけでend if を使用しない構文(多分?)の場合とはどのように使い分けるのでしょうか。
ゲストさんのコメント
(コメントID: 2158)
まだおかしいね。
Next(D)
のところが構文エラーです。
ということで、
> If then end ifは条件が一致すると常にそのまま進むものであるのでしょうか。
> If thenだけでend if を使用しない構文(多分?)の場合とはどのように使い分けるのでしょうか。
上記の質問にお答えできるところまで到達できません。
こんなやりとりしてても時間のムダですので、次回は動作確認済みのマクロ送ってください。
念のために書きますが、「動くかどうか」だけじゃなくて、質問したい点についても自分の想定どおりに動作するマクロかどうか確認してから送ってください。
動作確認するときは、特に知りたいところは [F8] でステップイン実行しながらしっかり確認しつつ。
[F5], [F8], [F9] の使い分けについて解説した動画を見直し、僕がこの動画で動作テストをしているときにそれらをどう活用しているかを確認して。
質問の内容からも感じますが、全体にもう少し自分で検証する習慣をつけたほうがよいかと思います。
もしもそれを面倒に感じるようでしたら、タイピングスキルとショートカットキー活用の練習不足です。
タイピングスキルについては以下の動画で。
https://online.pc5bai.com/movie/index/24
ショートカットキー操作については、以下。
https://forum.pc5bai.com/lesson/page/121
https://forum.pc5bai.com/lesson/page/122
突き放しているように読めるかもしれませんが、自分で問題解決できる力をつけるのがいちばんです。
それがあればそもそもしないで済みそうな質問にも感じます。
ひきつづきよろしくお願いいたします。
>すいません、コピーを張り付けることができるなら今後そうします。質問の意味が自分でも不明です。
>End ifが(C)の位置だとてっきりIfにもどるものと思って言いました。
>If then end ifは条件が一致すると常にそのまま進むものであるのでしょうか。
>If thenだけでend if を使用しない構文(多分?)の場合とはどのように使い分けるのでしょうか。
>