Sub shikubunkatsu()
Dim ku
Dim jyusyo
Dim i
For i = 2 To Cells(Rows.Count, 2).End(xlDown).Row '最終行の指定
jyusyo = Range("c" & i).Value
ku = InStr(jyusyo, "区")
Range("G" & i).Value = Left(jyusyo, ku)
Range("H" & i).Value = Mid(jyusyo, ku + 1)
Dim sen
Dim jyusyo2
jyusyo2 = Range("e" & i).Value
sen = InStr(jyusyo2, "線")
Range("I" & i).Value = Left(jyusyo2, sen)
Range("J" & i).Value = Mid(jyusyo2, sen + 1)
Dim kozoData
Dim kai
Dim takasa
kozoData = Range("D" & i).Value
kai = InStr(kozoData, "/")
takasa = InStr(kai + 1, kozoData, "/")
Range("J" & i).Value = Left(kozoData, kai - 1)
Range("K" & i).Value = Mid(kozoData, kai + 1, takasa - kai - 1)
Range("L" & i).Value = Mid(kozoData, takasa + 1)
Next i
End Sub
黄色行になるのはラストから5行目 Range("J" & i).Value = Left(kozoData, kai - 1) のところです。
受講生さんの投稿
(投稿ID: 2095)
今回の動画を見る前に自分で取り組んだ結果報告です。
導入編で既に同じ処理をする関数をご紹介いただいていたので、切り分けは自力でできました。
以下のステップで進みました。
①1行目のデータを切り分ける3つのマクロを作り、それぞれが正常に動いた
②for next文を入れて、3つのマクロをつなげたマクロが正常に動いた
③ラスト行が固定しない場合を想定し、(参考書で調べてきた)最終行を調べて取得する言葉を入れてみた。
↓
ラスト行までデータは入りましたが、以下のエラーが出て正常終了しませんでした。
「実行時エラー5 プロシージャの呼び出し、または引数の不正です」
以下にコードを載せます。
黄色行になるのはラストから5行目
Range("J" & i).Value = Left(kozoData, kai - 1)
のところです。
もしかしたら、この先の動画で解決するのかもしれませんが、
現状できるところまで取り組んだということで、添削をお願いします。
ゲストさんのコメント
(コメントID: 3489)
基礎編フォローアップで同じ課題について詳しく解説しています。
そちらを観ていただくのが早いかな、と思います。
それにしても、すごい地力ですね。パワーとうか、gooskaさんの芯の強さを感じます。