環境 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も見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
テキストボックスの入力制限
Visual Basic(VBA)
-
VB6で、長い時間かかる処理実行中の表示の工夫について
Visual Basic(VBA)
-
VB6.0 CSVファイル読み込みについて
Visual Basic(VBA)
-
-
4
VB6とVB.NETでNullの扱いが違う?
Visual Basic(VBA)
-
5
VB6.0でテキストボックスの書式設定をしたいのですが、
Visual Basic(VBA)
-
6
VBのReturnの使い方
Visual Basic(VBA)
-
7
VB6でCSVの取込をする
Visual Basic(VBA)
-
8
VB6でClickイベントを一時的に削除したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
C#でbyte配列から画像を表示さ...
-
配列のペースト出力結果の書式...
-
Excelのメモリ(配列)の上限は2G...
-
定数配列の書き方
-
vba フィルター 複数条件 3つ以...
-
配列の中の最大値とそのインデ...
-
C#,繰り返し処理での最大値の取...
-
pictureboxの名前を変数で設定...
-
Dir関数で読み取り順を操作でき...
-
構造体配列内の文字列検索のよ...
-
VBAでMODE関数をつくる
-
構造体配列の特定のメンバーをF...
-
エクセルVBAからNotesでメー...
-
エクセルVBAで実行時エラー7、...
-
VBA 桁数が混在するソート
-
SUM関数の中身(VBA)
-
ASPのReDim Preserveについて
-
エクセルでXY座標に並べられた...
-
大量の変数を定義するにはどう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA 変数名に変数を使用したい。
-
vba フィルター 複数条件 3つ以...
-
エクセルでXY座標に並べられた...
-
C#でbyte配列から画像を表示さ...
-
配列のペースト出力結果の書式...
-
配列の中の最大値とそのインデ...
-
Excel2010のinputboxで複数デー...
-
Dir関数で読み取り順を操作でき...
-
大量の変数を定義するにはどう...
-
Redim とEraseの違いは?
-
VB6のメモリ解放に関して
-
CheckBoxの配列化
-
COBOLの基本的な事なので...
-
コンボボックスのインデックス...
-
構造体配列の特定のメンバーをF...
-
構造体配列内の文字列検索のよ...
-
定数配列の書き方
-
Excelのメモリ(配列)の上限は2G...
-
Segmentation Fault (メモリ制限?)
-
複数のtextboxの処理を一括で行...
おすすめ情報