
VB6.0 でCSVの取り込みをしています。
Dim objFso As FileSystemObject
Dim objTso As TextStream
Dim データ As Variant
Dim stArrayData() As String
Set objFso = New FileSystemObject
Set objTso = objFso.OpenTextFile(取込パス, ForReading)
データ = objTso.ReadLine
'配列に格納
stArrayData = Split(データ, ",")
'データの取得
データの取得 = stArrayData(0)
stArrayData(0)で、データが取得できますが、
ダブルコーテーションが付加された状態で取得がしたいのですが、できません。。
今は、「000」で取得しているのを、
「"000"」で取得したいのです。
なお、取込むCSVをテキストで開くと、
ダブルコーテーションはついていません。
また、そもそも、取込む際に、ダブルコーテーションを付加する方法があるのでしょうか?
それとも、取込んだ後に、ダブルコーテションを付加するのでしょうか?
ご教授宜しくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
EXCEL等で
000 "000" 000,000 "000,000
と言う文字列データを入力してCSVに書き出すと
000,"""000""","000,000","""000,000"
と言うCSVファイルが出力されます。
これを取り込んだ場合、データは
000 "000" 000,000 "000,000
の4つにならなければなりません。
>今は、「000」で取得しているのを、
> 「"000"」で取得したいのです。
では、CSVファイルに「"""000"""」って書かれていたら、つまり、EXCELで「"000"」と言う文字列を入力していたら、どういう文字列になるべきか、考えてみましょう。
正解は「"000"」でしょうか?それとも「""000""」でしょうか?
単純に
>'配列に格納
>stArrayData = Split(データ, ",")
では「データとしてカンマを入力したとき」に正常に動作しません。
http://excel-ubara.com/excelvba5/EXCEL111.html
の最初のサンプルも「データの中の"や,を考慮してないサンプル」であり、貴方のプログラムと同じで、正常に動作しません。
同じページの2番目のサンプルが「データの中の"や,を考慮しているサンプル」で、この2番目のサンプルのように作らないと、データを正常に読み込めません。
EXCEL等で
000 "000" 000,000 "000,000
と言う4つの文字列データを入力してCSVに書き出して
000,"""000""","000,000","""000,000"
と言うCSVファイルを作り、このCSVファイルを読み込んで、元通り4つの
000 "000" 000,000 "000,000
と言うデータが取り込めれば「正常」です。
もちろん「自分で勝手に”を付け足す」なんて事はやってはいけません。
そんなことをしたら、元々のデータに”があったのか、それとも貴方が勝手に付け足したのか、判らなくなってしまいます。
早々のご回答ありがとうございます。
再度、試したところ、やりたいことが実現しました。
CSVの取り込みについて、いろいろ勉強になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えて下さい
-
メモ帳(テキストデータ)をExc...
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
多量のSUMIF式を軽くしたい
-
javaでDBからデータを取ってき...
-
<VB>String→Object
-
ページ数を求めたい
-
ウィンドウ枠の固定を行の2箇所...
-
EXCEL VBA FREQUENCY関数での...
-
Excelのマクロでワードのテキス...
-
S9タイプからXタイプにデータ...
-
VBAでのリストビューにおけるド...
-
ユーザーフォームのテキストボ...
-
VB6でCSVの取込をする
-
ACCESS VBA インデックスが有効...
-
C# ソケット通信でデータ受信時...
-
あんまり考えたくないけど
-
シリアル通信におけるバイトデ...
-
C言語を用いて、GNUPLOTでリア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
配列でデータが入っている要素...
-
<VB>String→Object
-
二分探索の平均探索回数
-
多量のSUMIF式を軽くしたい
-
EXCELVBAでSQLserverからデータ...
-
この行は既に別のテーブルに属...
-
ユーザーフォームのテキストボ...
-
VBA 空白セルを削除ではない方...
-
特定のデータの抽出方法を教え...
-
パースとはなんですか?
-
C# ソケット通信でデータ受信時...
-
エクセルで2つの時系列のデー...
-
[C言語] コメント文字列を無視...
-
Accessで該当データにフラグを...
-
カンマからスラッシュに
-
C# でDataTableの更新を高速化...
-
アクセス2000で画像データ...
おすすめ情報