5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
受講生さんの投稿
(投稿ID: 764)
今回は区切り文字が「/」しかなかったため、以下のように作ってみました。
Sub Sample()
Dim i As Long, kouzou As String, tmp As Variant
For i = 2 To 51
kouzou = Cells(i, 4).Value
tmp = Split(kouzou, "/")
If tmp(0) = "RC" Then
Cells(i, "F").Value = "鉄筋コンクリート"
Else
Cells(i, "F").Value = "鉄骨鉄筋コンクリート"
End If
Cells(i, "G").Value = tmp(1)
Cells(i, "H").Value = tmp(2)
Cells(i, "I").Value = Cells(i, "F").Value & tmp(2) & "建ての" & tmp(1) & "階部分"
Next i
End Sub
ゲストさんのコメント
(コメントID: 1652)
配列は、ウチの講座では、発展編2で扱います。(なので、以下の議論は、基礎編レベルの方は安心してスルーしてください (^^; )
区切り文字が前と後で異なる場合は、replace関数を使って変換してから split 関数、とかも考えられそうですね。
「先に登場したスラッシュと後に登場したハイフン」のような法則だと「john-due/tokyo-japan」のようなデータで問題が起きそうでもありますが。
僕なら、以下のコード、 tmp は文字列型の動的配列で宣言します。 tmp() as string です。
あと、next の手前は、以下のように書くかな。
というのは、変数から値を拾ってくるほうが、オブジェクトへの参照をして所定のプロパティの値を取得するより高速なので。
内部形式文字列型のvariantを取得して & でつなぐ、というのも高負荷かと。
そういう意味でも、 tmp() as string で書いたほうが高速そうな予感です。体感できるほどの差にはならないでしょうが。
>小川先生
>今回は区切り文字が「/」しかなかったため、以下のように作ってみました。
受講生さんのコメント
(コメントID: 1657)
小川先生のアドバイスを参考に、コードを修正してみました。
修正する際に、動画の後半部分の解説が非常に参考になりました。
Sub Sample()
Dim i As Long, kouzou As String, tmp() As String
For i = 2 To 51
kouzou = Cells(i, 4).Value
tmp = Split(kouzou, "/")
If tmp(0) = "RC" Then
tmp(0) = "鉄筋コンクリート"
Else
tmp(0) = "鉄骨鉄筋コンクリート"
End If
Cells(i, "F").Resize(1, UBound(tmp) + 1) = tmp
Cells(i, "G").Value = Cells(i, "G").Value
Cells(i, "I").Value = tmp(0) & tmp(2) & "建ての" & tmp(1) & "階部分"
Next i
End Sub
>匿名 さん:
>
>配列は、ウチの講座では、発展編2で扱います。(なので、以下の議論は、基礎編レベルの方は安心してスルーしてください (^^; )
>
>区切り文字が前と後で異なる場合は、replace関数を使って変換してから split 関数、とかも考えられそうですね。
>「先に登場したスラッシュと後に登場したハイフン」のような法則だと「john-due/tokyo-japan」のようなデータで問題が起きそうでもありますが。
>
>僕なら、以下のコード、 tmp は文字列型の動的配列で宣言します。 tmp() as string です。
>
>あと、next の手前は、以下のように書くかな。
>
>
>
>というのは、変数から値を拾ってくるほうが、オブジェクトへの参照をして所定のプロパティの値を取得するより高速なので。
>内部形式文字列型のvariantを取得して & でつなぐ、というのも高負荷かと。
>そういう意味でも、 tmp() as string で書いたほうが高速そうな予感です。体感できるほどの差にはならないでしょうが。
>
>>小川先生
>>今回は区切り文字が「/」しかなかったため、以下のように作ってみました。
>
>
>
ゲストさんのコメント
(コメントID: 1661)
はい。以下でよいかと (^^
↑華麗ですね (^^
>小川先生:
>
>小川先生のアドバイスを参考に、コードを修正してみました。
>修正する際に、動画の後半部分の解説が非常に参考になりました。
>