Sub hyou()
Dim gyo
Dim gyoshya
Dim furigana
For gyo = 2 To 27
If InStr(gyoshya, Range("A" & gyo).Value) > 0 Then
Else
gyoshya = gyoshya & "," & Range("A" & gyo).Value
furigana = furigana & "," & Range("B" & gyo).Value
End If
Range("F2").Value = Mid(gyoshya, 2)
Range("F3").Value = Mid(furigana, 2)
Next
End Sub
Sub hyou()
'↓変数もインデントしましょう
Dim gyo
Dim gyoshya
Dim furigana
For gyo = 2 To 27
If InStr(gyoshya, Range("A" & gyo).Value) = 0 Then
gyoshya = gyoshya & "," & Range("A" & gyo).Value
furigana = furigana & "," & Range("B" & gyo).Value
End If
Range("F2").Value = Mid(gyoshya, 2)
Range("F3").Value = Mid(furigana, 2)
Next
End Sub
> 受講生 さん: > > If 条件が満たされたら Then > '何もしない > Else > '何かする > End If > > というのは、以下のように書き直せます。 > > If 条件が満たされなかったら Then > '何かする > End If > > ということで、そこだけ直すと以下のような感じです。 > (動作確認はしていません。もし動かなかったらすいません) > >
Sub hyou()
> '↓変数もインデントしましょう
> Dim gyo
> Dim gyoshya
> Dim furigana
>
> For gyo = 2 To 27
> If InStr(gyoshya, Range("A" & gyo).Value) = 0 Then
> gyoshya = gyoshya & "," & Range("A" & gyo).Value
> furigana = furigana & "," & Range("B" & gyo).Value
> End If
> Range("F2").Value = Mid(gyoshya, 2)
> Range("F3").Value = Mid(furigana, 2)
> Next
> End Sub
受講生さんの投稿
(投稿ID: 4727)
下記のようなコードでもsheet2の解答と同じ結果になりました。解説をみましたが、本当に色々パターンありますね。
小川慶一さんのコメント
(コメントID: 6592)
If 条件が満たされたら Then
'何もしない
Else
'何かする
End If
というのは、以下のように書き直せます。
If 条件が満たされなかったら Then
'何かする
End If
ということで、そこだけ直すと以下のような感じです。
(動作確認はしていません。もし動かなかったらすいません)
あと、セルF2、F3に何度も値を入れ直すことがコスト的にどうか?という点も気になりますね。
変数に値を格納するほうが低コスト(高速、低負荷)なので。
受講生さんのコメント
(コメントID: 6594)
> 受講生 さん:
>
> If 条件が満たされたら Then
> '何もしない
> Else
> '何かする
> End If
>
> というのは、以下のように書き直せます。
>
> If 条件が満たされなかったら Then
> '何かする
> End If
>
> ということで、そこだけ直すと以下のような感じです。
> (動作確認はしていません。もし動かなかったらすいません)
>
>
>
> あと、セルF2、F3に何度も値を入れ直すことがコスト的にどうか?という点も気になりますね。
> 変数に値を格納するほうが低コスト(高速、低負荷)なので。
小川さん
解答ありがとうございます。
変数は事前に宣言しといたほうがいいんですね。参考にさせていただきます。
小川慶一さんのコメント
(コメントID: 6596)
> 変数は事前に宣言しといたほうがいいんですね。
コードのボリューム次第ですね。
100行とかになるプログラムだと、以下のような書き方になったりすることもあります。