Sub test5()
Dim Sozai As String
Dim mae As Long
Dim ato As Long
Dim kazu As Long
Dim Yaku As String
Dim migi As Long
Dim hida As Long
Dim Zenyaku As String
migi = 2
For hida = 2 To 7
Zenyaku = Range("D" & hida).Value
Sozai = "、" & Zenyaku & "、"
For kazu = 1 To Len(Zenyaku) + 2
mae = InStr(Sozai, "、")
ato = InStr(mae + 1, Sozai, "、")
If ato = 0 Then
Exit For
End If
Yaku = Mid(Sozai, mae + 1, ato - mae - 1)
Range("L" & migi).Value = Yaku
Sozai = Mid(Sozai, ato)
migi = migi + 1
Next
Next
End Sub
HKさんの投稿
(投稿ID: 3842)
お世話になっております。4月頭に講座の申込みをしてから楽しく勉強させてもらっています。
この問題は、動画を見ない段階でInstr関数を使って以下のように解けました。自分の解法もなかなかシンプルで悪くないのではと思いました。
別件で質問なのですが、Range("A1")などセルを指定する際、セル列のアルファベットは大文字にするのが主流なのでしょうか?
個人的には、マクロはほとんどアルファベット小文字でかけるので、セル指定の時だけ、Shiftキーを押す一手が若干めんどくさく感じます。
可読性も個人的には小文字で書いてもあまり変わらないのですが、世の中一般的に普通は大文字で書くということであれば、そのようにしたいと思います。
小川 慶一さんのコメント
(コメントID: 5363)
こんばんは。
マクロ、拝見しました。とても良いかと思います。
というか、自力で解けさえすれば、どう言うやり方でもOKです。
実は、「区切り文字の間の文字を切り出して、順に処理する」というのは、発展編2で扱う「配列」と「Split関数」を組み合わせて簡単に解決します。
基礎編は「力技ででも何でも問題を自力解決できる」ということを目指す講座なので、僕もこの動画内では、無理やりゴリゴリと解答しています。
> 別件で質問なのですが、Range("A1")などセルを指定する際、セル列のアルファベットは大文字にするのが主流なのでしょうか?
どちらでも良いかと思います。
・大文字にするなら、セルの列名が大文字なのでそれに従う
・小文字にするなら、コーディングにかかる工数をへらす
ということで、一長一短ですね。
そういうときに、「では、どちらの方法を採用するか?」ということを考えるにあたっては、以下のブログ記事が参考になるかと思います。
[質問] 同じ機能を実現するマクロの書き方が複数ある場合、どの書き方が良いか分からなくて迷います。
https://www.exvba.com/4378/
> 小川先生
>
> お世話になっております。4月頭に講座の申込みをしてから楽しく勉強させてもらっています。
> この問題は、動画を見ない段階でInstr関数を使って以下のように解けました。自分の解法もなかなかシンプルで悪くないのではと思いました。
>
> 別件で質問なのですが、Range("A1")などセルを指定する際、セル列のアルファベットは大文字にするのが主流なのでしょうか?
> 個人的には、マクロはほとんどアルファベット小文字でかけるので、セル指定の時だけ、Shiftキーを押す一手が若干めんどくさく感じます。
> 可読性も個人的には小文字で書いてもあまり変わらないのですが、世の中一般的に普通は大文字で書くということであれば、そのようにしたいと思います。