5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
明石 照伸さんの投稿
(投稿ID: 416)
上記設問[3]、[4]、[5]について以下回答案作成してみました。
アドバイス等いただけますと幸いです。
よろしくお願いいたします。
===設問[3] ここから===
Sub furiwake3()
Dim kugiri1 '文字列の最初の区切り
Dim kugiri2 '文字列の2番目の区切り
Dim nagasa '文字列の長さ
Dim gyo
For gyo = 2 To 51
kugiri1 = InStr(1, Range("e" & gyo).Value, "線")
kugiri2 = InStr(1, Range("e" & gyo).Value, "駅")
nagasa = Len(Range("e" & gyo).Value)
Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri1)
Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri1 + 1, nagasa - kugiri2 + 1)
Range("J" & gyo).Value = Right(Range("e" & gyo).Value, nagasa - kugiri2)
Next
End Sub
===設問[3] ここまで===
===設問[4] ここから===
Sub furiwake4()
Dim gyo
For gyo = 2 To 11
Dim kugiri
kugiri = InStr(Range("c" & gyo).Value, "区")
If kugiri > 0 Then
Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
Else
kugiri = InStr(Range("c" & gyo).Value, "市")
Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
End If
Next
End Sub
===設問[4] ここまで===
===設問[5] ここから===
Sub furiwake5()
Dim kugiri
Dim gyo
For gyo = 2 To 11
kugiri = InStr(Range("e" & gyo).Value, "線")
If kugiri > 0 Then
Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
Else
kugiri = InStr(Range("e" & gyo).Value, "ル")
Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
End If
Next
End Sub
===設問[5] ここまで===
小川 慶一さんのコメント
(コメントID: 1227)
楽しんでますね!
設問[3]について。
Right関数を使うという発想、とてもよいと思います!
設問[4], [5] について。
たとえば[4]について言うと、If文の中で以下の2行が True のとき False のときの2回登場していますね。
そこの冗長さを解決したいです。
ひきつづきお楽しみを!
>お世話になります。
>
>上記設問[3]、[4]、[5]について以下回答案作成してみました。
>アドバイス等いただけますと幸いです。
>
>よろしくお願いいたします。
>
>===設問[3] ここから===
>
>Sub furiwake3()
> Dim kugiri1 '文字列の最初の区切り
> Dim kugiri2 '文字列の2番目の区切り
> Dim nagasa '文字列の長さ
> Dim gyo
>
> For gyo = 2 To 51
> kugiri1 = InStr(1, Range("e" & gyo).Value, "線")
> kugiri2 = InStr(1, Range("e" & gyo).Value, "駅")
> nagasa = Len(Range("e" & gyo).Value)
>
> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri1)
> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri1 + 1, nagasa - kugiri2 + 1)
> Range("J" & gyo).Value = Right(Range("e" & gyo).Value, nagasa - kugiri2)
>
>
> Next
>
>
>
>End Sub
>===設問[3] ここまで===
>
>
>===設問[4] ここから===
>
>Sub furiwake4()
> Dim gyo
> For gyo = 2 To 11
> Dim kugiri
> kugiri = InStr(Range("c" & gyo).Value, "区")
>
> If kugiri > 0 Then
> Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
> Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
>
> Else
> kugiri = InStr(Range("c" & gyo).Value, "市")
> Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
> Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
>
> End If
>
> Next
>
>
>
>End Sub
>===設問[4] ここまで===
>
>===設問[5] ここから===
>
>Sub furiwake5()
>
> Dim kugiri
> Dim gyo
>
> For gyo = 2 To 11
> kugiri = InStr(Range("e" & gyo).Value, "線")
> If kugiri > 0 Then
>
> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
>
> Else
> kugiri = InStr(Range("e" & gyo).Value, "ル")
> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
>
> End If
>
> Next
>
>
>
>End Sub
>===設問[5] ここまで===
明石 照伸さんのコメント
(コメントID: 1228)
コメントありがとうございます。(^^
ちょっとIF~Else~のところの流れがいけてない
感じがしていたのですが、小川さんのアドバイスで
もうすこしすっきりかけそうな気がします。
試しながらやってみます。(^^
>明石 照伸 さん:
>
>楽しんでますね!
>
>設問[3]について。
>Right関数を使うという発想、とてもよいと思います!
>
>設問[4], [5] について。
>
>たとえば[4]について言うと、If文の中で以下の2行が True のとき False のときの2回登場していますね。
>そこの冗長さを解決したいです。
>
>
>
>ひきつづきお楽しみを!
>
>
>
>>お世話になります。
>>
>>上記設問[3]、[4]、[5]について以下回答案作成してみました。
>>アドバイス等いただけますと幸いです。
>>
>>よろしくお願いいたします。
>>
>>===設問[3] ここから===
>>
>>Sub furiwake3()
>> Dim kugiri1 '文字列の最初の区切り
>> Dim kugiri2 '文字列の2番目の区切り
>> Dim nagasa '文字列の長さ
>> Dim gyo
>>
>> For gyo = 2 To 51
>> kugiri1 = InStr(1, Range("e" & gyo).Value, "線")
>> kugiri2 = InStr(1, Range("e" & gyo).Value, "駅")
>> nagasa = Len(Range("e" & gyo).Value)
>>
>> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri1)
>> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri1 + 1, nagasa - kugiri2 + 1)
>> Range("J" & gyo).Value = Right(Range("e" & gyo).Value, nagasa - kugiri2)
>>
>>
>> Next
>>
>>
>>
>>End Sub
>>===設問[3] ここまで===
>>
>>
>>===設問[4] ここから===
>>
>>Sub furiwake4()
>> Dim gyo
>> For gyo = 2 To 11
>> Dim kugiri
>> kugiri = InStr(Range("c" & gyo).Value, "区")
>>
>> If kugiri > 0 Then
>> Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
>> Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
>>
>> Else
>> kugiri = InStr(Range("c" & gyo).Value, "市")
>> Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
>> Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
>>
>> End If
>>
>> Next
>>
>>
>>
>>End Sub
>>===設問[4] ここまで===
>>
>>===設問[5] ここから===
>>
>>Sub furiwake5()
>>
>> Dim kugiri
>> Dim gyo
>>
>> For gyo = 2 To 11
>> kugiri = InStr(Range("e" & gyo).Value, "線")
>> If kugiri > 0 Then
>>
>> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
>> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
>>
>> Else
>> kugiri = InStr(Range("e" & gyo).Value, "ル")
>> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
>> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
>>
>> End If
>>
>> Next
>>
>>
>>
>>End Sub
>>===設問[5] ここまで===
>
小川 慶一さんのコメント
(コメントID: 1230)
はい!模範解答もみてみてください。
ひきつづきよろしくお願いいたします (^^
>小川慶一 さん:
>
>コメントありがとうございます。(^^
>
>ちょっとIF~Else~のところの流れがいけてない
>感じがしていたのですが、小川さんのアドバイスで
>もうすこしすっきりかけそうな気がします。
>
>試しながらやってみます。(^^
>
>
>
>
>>明石 照伸 さん:
>>
>>楽しんでますね!
>>
>>設問[3]について。
>>Right関数を使うという発想、とてもよいと思います!
>>
>>設問[4], [5] について。
>>
>>たとえば[4]について言うと、If文の中で以下の2行が True のとき False のときの2回登場していますね。
>>そこの冗長さを解決したいです。
>>
>>
>>
>>ひきつづきお楽しみを!
>>
>>
>>
>>>お世話になります。
>>>
>>>上記設問[3]、[4]、[5]について以下回答案作成してみました。
>>>アドバイス等いただけますと幸いです。
>>>
>>>よろしくお願いいたします。
>>>
>>>===設問[3] ここから===
>>>
>>>Sub furiwake3()
>>> Dim kugiri1 '文字列の最初の区切り
>>> Dim kugiri2 '文字列の2番目の区切り
>>> Dim nagasa '文字列の長さ
>>> Dim gyo
>>>
>>> For gyo = 2 To 51
>>> kugiri1 = InStr(1, Range("e" & gyo).Value, "線")
>>> kugiri2 = InStr(1, Range("e" & gyo).Value, "駅")
>>> nagasa = Len(Range("e" & gyo).Value)
>>>
>>> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri1)
>>> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri1 + 1, nagasa - kugiri2 + 1)
>>> Range("J" & gyo).Value = Right(Range("e" & gyo).Value, nagasa - kugiri2)
>>>
>>>
>>> Next
>>>
>>>
>>>
>>>End Sub
>>>===設問[3] ここまで===
>>>
>>>
>>>===設問[4] ここから===
>>>
>>>Sub furiwake4()
>>> Dim gyo
>>> For gyo = 2 To 11
>>> Dim kugiri
>>> kugiri = InStr(Range("c" & gyo).Value, "区")
>>>
>>> If kugiri > 0 Then
>>> Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
>>> Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
>>>
>>> Else
>>> kugiri = InStr(Range("c" & gyo).Value, "市")
>>> Range("f" & gyo).Value = Left(Range("c" & gyo).Value, kugiri)
>>> Range("g" & gyo).Value = Mid(Range("c" & gyo).Value, kugiri + 1)
>>>
>>> End If
>>>
>>> Next
>>>
>>>
>>>
>>>End Sub
>>>===設問[4] ここまで===
>>>
>>>===設問[5] ここから===
>>>
>>>Sub furiwake5()
>>>
>>> Dim kugiri
>>> Dim gyo
>>>
>>> For gyo = 2 To 11
>>> kugiri = InStr(Range("e" & gyo).Value, "線")
>>> If kugiri > 0 Then
>>>
>>> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
>>> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
>>>
>>> Else
>>> kugiri = InStr(Range("e" & gyo).Value, "ル")
>>> Range("h" & gyo).Value = Left(Range("e" & gyo).Value, kugiri)
>>> Range("i" & gyo).Value = Mid(Range("e" & gyo).Value, kugiri + 1)
>>>
>>> End If
>>>
>>> Next
>>>
>>>
>>>
>>>End Sub
>>>===設問[5] ここまで===
>>
>