OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

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

  • 暇なときにでも
  • 質問No.116887
  • 閲覧数91
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 24% (21/85)

アクセス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)という変数を自動的に生成し、その生成された各変数にデータを代入していきたいのですが、どうすればいいのでしょうか?
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル10

ベストアンサー率 31% (44/140)

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

Dim strData() as Sting

strData = split(データ," ")

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

  • 回答No.2
レベル12

ベストアンサー率 45% (207/457)

参考までにVBscriptで作った時のカンマ区切りの処理 Sub DataSep(InputStr,OutputStrs()) Dim i Dim Fs,TxtLen ReDim OutputStrs(個数) InputStr = InputStr & "," Fs = 1 For i = 1 To Col TxtLen = InStr(Fs, In ...続きを読む
参考までに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で前の情報を保持しつつ配列要素を増やす事が出来ること。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ