
環境 VB6.0
CSVデータをカンマで区切ってデータを取得して
いるのですが、こういう処理はできるのでしょうか?
例えば データがダブルコーテーションでくるられて
いる場合はカンマ(,)を無視するといった
ことはできるのでしょうか?
DIM CSVDATA AS STRING
DIM XWDNDATA() AS STRING
CSVDATA = "1,2,"あいう,おえお",25"
XWDNData = Split(CSVDATA, ",")
XWDNData(0) = "1"
XWDNData(1) = "2"
XWDNData(2) = ""あいう"
XWDNData(3) = "おえお""
XWDNData(4) = "25"
XWDNData(2)とXWDNData(3)を一つのデータとしたい
こうしたいデータ
XWDNData(0) = "1"
XWDNData(1) = "2"
XWDNData(2) = "あいうおえお"
XWDNData(3) = "25"
No.6ベストアンサー
- 回答日時:
3度目のすいませんです。
また、間違えてました。
(もっと良く考えてから回答しないとだめですね。)
余計な空白が入ってしまいました。
'1度配列を結合し再度[,]で区切る
XWDNDATA = Split(Join(XWDNDATA, ""), ",")
に変更してください。
もう変更は無いと思います。(無い事を祈ってます)
taisuke555さんありがとうございました。すみませんたくさんソースを書いてくださって。taisuke555さんのおかげでできました。すっげーうれしいです。
No.5
- 回答日時:
さらにすいません。
それなら
Private Sub Test()
Dim CSVDATA As String
Dim XWDNDATA() As String
Dim i As Integer
Dim Dat As String 'デバッグ用
CSVDATA = "1,2,""あいう,おえお"",25"
'データを["]で区切る
XWDNDATA = Split(CSVDATA, """")
'奇数番目の配列の[,]を削除する
For i = 1 To UBound(XWDNDATA) Step 2
XWDNDATA(i) = Replace(XWDNDATA(i), ",", "")
Next i
'1度配列を結合し再度[,]で区切る
XWDNDATA = Split(Join(XWDNDATA), ",")
'デバッグ用
For i = 0 To UBound(XWDNDATA)
Dat = Dat & i & "=" & XWDNDATA(i) & Chr(13)
Next i
MsgBox Dat
End Sub
でいいですね。(これなら絶対にでない文字[@]は必要ないです。)
No.4
- 回答日時:
すいません。
「あいう,おえお」→「あいうおえお」
にしたいのでしたね。
'偶数番目の配列の[,]を[@]に置換する
'奇数番目の配列の[,]を削除する
For i = 0 To UBound(XWDNDATA)
If (i Mod 2 = 0) Then
XWDNDATA(i) = Replace(XWDNDATA(i), ",", "@")
Else
XWDNDATA(i) = Replace(XWDNDATA(i), ",", "")
End If
Next i
に訂正してください。
No.3
- 回答日時:
こんな方法はいかがでしょう?
Private Sub Test()
Dim CSVDATA As String
Dim XWDNDATA() As String
Dim i As Integer
Dim Dat As String 'デバッグ用
CSVDATA = "1,2,""あいう,おえお"",25"
'データを["]で区切る
XWDNDATA = Split(CSVDATA, """")
'偶数番目の配列の[,]を[@]に置換する
For i = 0 To UBound(XWDNDATA) Step 2
XWDNDATA(i) = Replace(XWDNDATA(i), ",", "@")
Next i
'1度配列を結合し再度[@]で区切る
XWDNDATA = Split(Join(XWDNDATA), "@")
'デバッグ用
For i = 0 To UBound(XWDNDATA)
Dat = Dat & i & "=" & XWDNDATA(i) & Chr(13)
Next i
MsgBox Dat
End Sub
[,]を[@]に置換していますが、
文字列中に絶対に出てこない文字ならば[#]でも[|]でも何でもいいです。
ただ、絶対に出てこない文字が無ければ無理ですね。
No.2
- 回答日時:
質問例しかテストしていませんのでバグがあるかもしれませんが、興味があれば改良してください。
「,」から、「,」までに「”」があると次ぎの「”」までを切り出しています。Sub test03()
c = "1,2,""あいう,おえお"",25"
s = 1
j1:
p = InStr(s, c, ",")
If p = 0 Then
b = Mid(c, s, Len(c) + 1 - s)
Else
b = Mid(c, s, p - s)
End If
p1 = InStr(1, b, """")
If p1 = 0 Then
s = p + 1
Else
p2 = InStr(p + 1, c, """")
b = Mid(c, s, p2 + 1 - s)
s = p2 + 2
End If
MsgBox b
If p <> 0 Then GoTo j1
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sub 分けてソートして貼り付ける() Dim srcSheet As Worksheet Dim 6 2023/08/04 19:57
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Java javaのCSVデータ読込についてです 6 2022/07/02 10:58
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
定数配列の書き方
-
配列のペースト出力結果の書式...
-
VB.NETにて、構造体へデータを...
-
Redim とEraseの違いは?
-
大量の変数を定義するにはどう...
-
エクセルでXY座標に並べられた...
-
CheckBoxの配列化
-
エクセルの列一括書き込み
-
ReDim PreserveよりもReDimが遅い
-
vba フィルター 複数条件 3つ以...
-
VB6のメモリ解放に関して
-
構造体配列の特定のメンバーをF...
-
複数のtextboxの処理を一括で行...
-
VBAでMODE関数をつくる
-
配列の初期化に時間がかかりま...
-
Dir関数で読み取り順を操作でき...
-
VB.NETの配列の限界を教えてく...
-
構造体配列内の文字列検索のよ...
-
2次元配列の初期値
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
C#でbyte配列から画像を表示さ...
-
配列の中の最大値とそのインデ...
-
エクセルでXY座標に並べられた...
-
Dir関数で読み取り順を操作でき...
-
配列のペースト出力結果の書式...
-
COBOLの基本的な事なので...
-
複数のtextboxの処理を一括で行...
-
構造体配列の特定のメンバーをF...
-
大量の変数を定義するにはどう...
-
CheckBoxの配列化
-
Excelのメモリ(配列)の上限は2G...
-
VB6のメモリ解放に関して
-
ReDim PreserveよりもReDimが遅い
-
Excel2010のinputboxで複数デー...
-
定数配列の書き方
-
コンボボックスのインデックス...
-
EXCELを使って、アクセスログを...
-
レコードセットの中身を配列に...
おすすめ情報