アクセス2000を使っています。
一つのレコード内に、下記のように、「半角4文字の番号+スペース」という規則正しいデータがあります。
 ↓↓
11A11 10A11 22B11 09A22

しかし、このデータの数は不規則で、番号が1個のものもあれば、20個のものもあります。
 ↓↓
11A11
11A11 10A11 22B11 09A22 ・・・

このデータ内にある半角4文字の番号を全て別々のデータにしたいと思い、VBAのコードを使って、InStr関数でスペースを検索し、そのスペースの手前から4文字のデータをleft関数やMid関数で抽出し、それを変数data(x)に代入し、次に、InStr関数で前のスペースの位置から次のスペースを探して、また、そのスペースの手前から4文字のデータをMid関数で抽出し、それを変数data(x)に代入する。
要するに、data(x) の中の x を1から1づつ増加させていき、data(1),data(2),data(3)という変数を自動的に生成し、その生成された各変数にデータを代入していきたいのですが、どうすればいいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (2件)

参考までにVBscriptで作った時のカンマ区切りの処理



Sub DataSep(InputStr,OutputStrs())
Dim i
Dim Fs,TxtLen
ReDim OutputStrs(個数)

InputStr = InputStr & ","

Fs = 1
For i = 1 To Col
TxtLen = InStr(Fs, InputStr, ",", vbTextCompare)
If TxtLen > 0 Then
OutputStrs(i-1) = Mid(InputStr,Fs,TxtLen - FS)
Else
OutputStrs(i-1) = ""
End If
Fs = TxtLen + 1
Next

End Sub

でもこの位は自分で考えてね。

問題は分割するN数が不定であること。
ReDimで前の情報を保持しつつ配列要素を増やす事が出来ること。
    • good
    • 0

ACCESS2000なら、split関数があると思います。



Dim strData() as Sting

strData = split(データ," ")

これでOKです。
いくつあるかは、UBound関数で配列数をチェックしてください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


人気Q&Aランキング

おすすめ情報