• 締切済み

アクセス2000のVBAで変数に係数をつける方法

アクセス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)という変数を自動的に生成し、その生成された各変数にデータを代入していきたいのですが、どうすればいいのでしょうか?

みんなの回答

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.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で前の情報を保持しつつ配列要素を増やす事が出来ること。

  • miya_777
  • ベストアンサー率31% (44/140)
回答No.1

ACCESS2000なら、split関数があると思います。 Dim strData() as Sting strData = split(データ," ") これでOKです。 いくつあるかは、UBound関数で配列数をチェックしてください。