Sub createlist2()
Dim i, j, ward
Range("E2").Value = Range("A2").Value
Range("F2").Value = Range("B2").Value
j = 3
For i = 3 To 26
If Range("A" & i - 1).Value <> Range("A" & i).Value Then
Range("E" & j).Value = Range("A" & i).Value
Range("F" & j).Value = Range("B" & i).Value
j = j + 1
End If
Next
'作成日: 2015/02/09。↓2日考えてやっと完成
j = 2
Range("G2").Value = Range("C2").Value & "地区"
For i = 2 To 26
If Range("A" & i) <> Range("A" & i + 1) Then
ward = 0
j = j + 1
ward = Range("C" & i + 1).Value & "地区,"
Range("G" & j).Value = ward
Else
ward = ward & Range("C" & i + 1) & "地区,"
Range("G" & j).Value = ward
End If
Next
For i = 3 To 11
Range("G" & i).Value = Left(Range("G" & i).Value, Len(Range("G" & i).Value) - 1)
Next
End Sub
ゲストさんの投稿
(投稿ID: 1107)
今から仕事なので帰宅したら小川先生のマクロを検証しつつなぞろうと思います。
小川 慶一さんのコメント
(コメントID: 2267)
そして、動画で示した見本と比べてどうでしたでしょうか?
佐藤 あゆむさんのコメント
(コメントID: 2273)
私が一番悩んだのは地区の部分をどうやって入れるかということでした。
どうしても一段後にずれるようなので、とりあえずA2の岩手化学が一つしかないのを幸いに、
岩手化学をForNextから出して先行させ、残りの地区を入れていくという算段を立てました。
小川先生は、その一段ずれる部分をIf migi>2Thenで吸収していますね。
流れを変えたい部分を大きな流れの中に組み込んで分岐させる、という発想は私にはありませんでした。
流れを変えたいから、全体としての大きな流れとはまた別の流れを作ってしのごうと考えましたから。
今後は、マクロを書く中で「この流れをかえたい」という部分を全体の流れにうまく組み込んで書けるようになりたいです(*゚▽゚)*
ゲストさんのコメント
(コメントID: 2276)
For Next構文の入りにそれが初回処理かどうか判断して条件分岐するというのは常道です。
ムダに知識を増やすより、こういう手法を知っているか、自分のケースに当てはめて自由に活用できるかということが重要です。