« 24時間以上を表す文字列をDate型に変換する | トップページ | 1次元配列の使い方 »

2010年9月29日 (水)

特定の文字で区切られた文字列を分割して配列にいれる

もう少し詳しく言い換えると、
特定の文字(例えば空白やコンマなど)で区切られた文字列を
その特定の文字で分割して一次元配列にいれる。

これにはSplit関数を使います。
使い方の具体例を挙げます。

Split("1,2,3,4,5", ",")

これは、

配列の要素0 = 1
配列の要素1 = 2
配列の要素2 = 3
配列の要素3 = 4
配列の要素4 = 5

の配列になります。

1つ目の引数に分割して配列にしたい文字列を指定します。
2つ目の引数は、分割する文字列です。

上の例では文字列"1,2,3,4,5"を
","(コンマ)で分割して配列にします。
区切る文字は1文字以上でもよく、
"<BR>"でも区切ることができます。

Split関数の詳細はVBAヘルプにあります。

コードはこちら
変数aをウォッチウインドウで見ると
配列を確認できます。

Split関数使用例のコード:

Sub macro100929a()
'特定の文字(,)で区切られた文字列を
'区切りの文字で分割して
'一次元配列を作る
'配列が格納されたバリアント型 (Variant)を使う

    Dim Str As String
    Dim a As Variant
   
    Str = "5,6,7,8"
    a = Split(Str, ",")
     'ウォッチウィンドウで配列を確認できます
    Stop
   
End Sub

Sub macro100929b()
'特定の文字(<BR>)で区切られた文字列を
'区切りの文字で分割して
'一次元配列を作る
'配列が格納されたバリアント型 (Variant)を使う

    Dim Str As String
    Dim a As Variant
   
    Str = "5<BR>6<BR>7<BR>8"
    a = Split(Str, "<BR>")
   
    'ウォッチウィンドウで配列を確認できます
    Stop
   
End Sub

Sub macro100929c()
'特定の文字(,)で区切られた文字列を
'区切りの文字で分割して
'一次元配列を作る
'動的配列を使う

    Dim Str As String
    Dim a() As String '文字列型の配列を宣言
    Str = "5,6,7,8"
   
    '配列のサイズを指定
    ReDim a(UBound(Split(Str, ",")))
   
    '代入
    a = Split(Str, ",")
   
     'ウォッチウィンドウで配列を確認できます
    Stop
   
End Sub

2通りの配列の使い方が
いつもごっちゃになります。
さらに
かつてかじったJAVAの配列のかすかな記憶も入り混じり
毎回調べてしまいます。

次の記事は、
配列の使い方を整理したいと思います。

|

« 24時間以上を表す文字列をDate型に変換する | トップページ | 1次元配列の使い方 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 特定の文字で区切られた文字列を分割して配列にいれる:

« 24時間以上を表す文字列をDate型に変換する | トップページ | 1次元配列の使い方 »