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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Sub 分けてソートして貼り付ける() Dim srcSheet As Worksheet Dim 6 2023/08/04 19:57
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 追記する列を増やしたい 2つのデータを検索・照合して元データにないデータを下記マクロで商品名を追記し 9 2022/10/05 10:50
- Excel(エクセル) Excelの帳票形式をアクセスに取り込むため、 csvのデータ形式になるように、マクロを作成している 2 2022/06/12 22:52
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
VB6.0 CSVファイル読み込みについて
Visual Basic(VBA)
-
VB6.0 ファイルの一括読込み
Visual Basic(VBA)
-
VB6 配列を初期化したい
Visual Basic(VBA)
-
-
4
VB6でのファイル作成方法
Visual Basic(VBA)
-
5
VBプログラムの終了
Visual Basic(VBA)
-
6
VB6で正確なミリ秒を計測したいのですが
Visual Basic(VBA)
-
7
VB6.0-整数と余りを求める
Visual Basic(VBA)
-
8
VB6.0 文字列のファイル書き込み
Visual Basic(VBA)
-
9
csvファイル 項目数取得
Visual Basic(VBA)
-
10
VB6にて、テキストファイルの内容を更新したいのですが。。
Visual Basic(VBA)
-
11
Chr(13)とChr(10)の違いは?
PowerPoint(パワーポイント)
-
12
vb6のVSFlexGridで選択行、列の値を取得し構造体に入れたい
Visual Basic(VBA)
-
13
CSV形式のファイルを読み込んでテーブルに格納するには?
Visual Basic(VBA)
-
14
SPLIT関数
Visual Basic(VBA)
-
15
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
16
Double型について
Visual Basic(VBA)
-
17
VB6,論理演算子Orの使い方がわからない
Visual Basic(VBA)
-
18
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
19
【VB6.0】 あるフォームから他のフォームへ値を受け渡したい
Visual Basic(VBA)
-
20
VisualBasic6.0のFormat関数でmSecを表示したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
合計3TBのデータのハッシュ値を...
-
教えて下さい
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
【エクセル】測定時間がバラバ...
-
配列でデータが入っている要素...
-
エクセルで2つの時系列のデー...
-
メモ帳(テキストデータ)をExc...
-
C言語プログラム変更
-
Matlab:plotで特定の値だけをプ...
-
Excelのマクロでワードのテキス...
-
シーケンサにパソコンからアク...
-
VBAを使ってOutlookメール本文...
-
matlabでの標高断面図の作成
-
ウィンドウ枠の固定を行の2箇所...
-
パースとはなんですか?
-
Accessで該当データにフラグを...
-
ビットシフトについて
-
VBA & easycomm で長時間測定の...
-
配列の勉強をしています。使用...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて下さい
-
配列でデータが入っている要素...
-
【エクセル】測定時間がバラバ...
-
メモ帳(テキストデータ)をExc...
-
VBA 空白セルを削除ではない方...
-
多量のSUMIF式を軽くしたい
-
Excelのマクロでワードのテキス...
-
エクセルで2つの時系列のデー...
-
この行は既に別のテーブルに属...
-
VBAを使ってOutlookメール本文...
-
シーケンサにパソコンからアク...
-
EXCELVBAでSQLserverからデータ...
-
ブレーカー落ちで壊れたりしな...
-
[C言語] コメント文字列を無視...
-
オープンチヤットでデータ削除...
-
モジュラス103の算出方法について
-
javaでDBからデータを取ってき...
-
カンマからスラッシュに
-
VBA 毎日取得するデータを順番...
-
Android携帯をUSBメモリ代わりに
おすすめ情報