投稿/コメントを表示します。

小川様

お世話になります。
この課題に対して自分なりにマクロを書いてみたのですが(ソート後のマクロ部分)、一応正しいアウトプットは得られたものの、どの程度汎用性があるのか不安です。このマクロの課題を指摘していただけないでしょうか?

①小川さんのマクロの方がすっきりしている。
②shohinなど分かりやすい変数を使っているため、理解しやすい。
③今後マクロを学んでいく上で、小川さんのマクロ(の考え方)の方がたぶん都合がいい(だろう)。
ぐらいは何となくわかるのですが…。
まだマクロに対して根本的な理解が浅いためよろしくお願いいたします。

下記ががそのマクロとなります。

Sub mondai3()

Dim cHida As Long
Dim cMigi As Long
Dim cLast As Long
Dim cGokei As Long

cLast = Range("A" & Rows.Count).End(xlUp).Row
cMigi = 3

For cHida = 2 To cLast
If Range("E" & cHida).Value <> Range("E" & cHida - 1).Value Then
Range("H" & cMigi).Value = Range("E" & cHida).Value
Range("I" & cMigi).Value = Range("B" & cHida).Value
Range("J" & cMigi).Value = 0
cMigi = cMigi + 1

ElseIf Range("B" & cHida).Value <> Range("B" & cHida - 1).Value Then
Range("H" & cMigi).Value = Range("E" & cHida).Value
Range("I" & cMigi).Value = Range("B" & cHida).Value
Range("J" & cMigi).Value = 0
Debug.Print cGokei
cMigi = cMigi + 1
End If
cGokei = Range("J" & cMigi - 1).Value + Range("F" & cHida).Value
Range("J" & cMigi - 1) = cGokei
Debug.Print cGokei
Next
Range("H" & cMigi).Value = Range("E" & cHida).Value
Range("I" & cMigi).Value = Range("B" & cHida).Value
End Sub


2017/12/20 18:01