Sub mondai5()
Dim moji
Dim mae
Dim ato
Dim n
Dim saki
Dim gyo
saki = 2
For gyo = 2 To 7
moji = Range("D" & gyo).Value
If InStr(moji, "、") > 0 Then
mae = InStr(moji, "、")
Range("L" & saki).Value = Left(moji, mae - 1)
ato = mae
saki = saki + 1
For n = mae + 1 To Len(moji)
If Mid(moji, n, 1) = "、" Then
mae = ato
ato = n
Range("L" & saki).Value = Mid(moji, mae + 1, ato - mae - 1)
saki = saki + 1
End If
Next
Range("L" & saki).Value = Mid(moji, ato + 1)
saki = saki + 1
Else
Range("L" & saki).Value = moji
saki = saki + 1
End If
Next
End Sub
にしとみさんの投稿
(投稿ID: 5159)
「0文字目」の概念が自分の中からは出てこず、かなり力技で進めた結果です。
出力したい結果の本質をもう少し深く理解できるようしっかり復習しようと思います。
以下、自力で書いたプログラムです。
無駄が多くて見づらいですが一応載せてみます。
小川 慶一さんのコメント
(コメントID: 7304)
にしとみさんは、腕力、ありますねー。
腕力があることは、とてもすばらしいです。
実は、このお題は、「発展編2」の知識があればパターン化された手法で簡単に解けます。
なのですが、ここでは、それは紹介せず、「多少腕力は要求されるが、基礎編レベルの知識で解説できる手法」を紹介しています。
どうしてかというと、たとえこの課題をより簡単に解く方法を知っていたとしても、それはそれで、その前提でより複雑なプログラムを書きたくなるでしょうし、そのときには、結局腕力が必要になるからです。
極論すれば、プログラミング技術の構成要素とは「アルゴリズム(解法パターン)のストック+腕力」です。
基礎編演習は、「代表的かつ基本的なアルゴリズム」と、「自身にとって複雑と感じられるような課題でもそれなりに解決できるだけの腕力」を身に着けていただくことを狙いとして提供しています。
ひきつづき、いろいろお楽しみください☆
にしとみさんのコメント
(コメントID: 7306)
そういっていただけると今後の励みになります!
ありがとうございます。
小川 慶一さんのコメント
(コメントID: 7307)
はい、そう思います。
この学習段階で、構造を考え抜いて自力でなんとか書き上げられるというのは、すごいことです。
ひきつづき、楽しんでいろいろトライしていっていただければと思います。