
いつも皆様ありがとうございます。
ExcelのVBAで、以下の仕様のテキスト・ファイルを1行ずつ読み込もうとしています。
【仕様】
・1行は1つ以上のスペースで区切られた複数の値から成る。
・値中に、半角カンマが含まれる場合がある。
値中にカンマが存在しない場合は、問題なく改行まで読み込まれるのですが、カンマがあるとそのカンマ以降のデータが読み込まれません。
Dim intFF As Integer 'FreeFile値
Dim strFileName As String 'ファイル名
Dim strRec As String '1行の読み込み内容
strFileName = "TEST.txt"
intFF = FreeFile
Open strFileName for Input As #intFF
Do Until EOF(intFF)
Input #intFF, strREC ' ※1
・・・(省略)
上記※1のコード実行後にstrRECの中を見ると、カンマ以降の文字列が読み込まれていません。
例えば「A BB CCC DDDD」というデータの場合は問題なくそのままの値がstrRECの中に入っていますが、「A BB CC,C DDDD」というデータだと「A BB CC」というようになってしまいます。
Inputステートメントについて調べましたが、区切り文字に関する記述がなかったので困っています。
もし原因をご存知の方がいらっしゃいましたらお教えいただけないでしょうか。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
Input #intFF, strREC
を
LineInput #intFF, strREC
にしてください。
No.2
- 回答日時:
Input #filenumber, varlist
varlist:データを格納するための変数。一つまたは複数カンマ(,)で区切って指定。
「各データ項目の間にカンマ (,) が挿入されます」というMSDNライブラリの説明があります。
Inputステートメントは、そういうデータ構造に対応しているという訳です。
ですから、変数リストが既知であれば、
Input #intFF, strREC(0,0),strREC(0,1),strREC(0,2)
と書くと、それぞれに対応する変数に読み込みます。
まあ、1980年代のコードです。
*****
なお、Microsoft scripting runtime を参照させれば非手続き的に読む込むことが可能です。
Dim I As Integer
Dim N As Integer
Dim strRec() As String
strRec()=FileReadArray("Test.txt")
N=UBound(strRec())
For I = 0 To N
Debug.print strRec(I)
Next I
※FileReadArray関数は過去の回答に多々出てきますので、それを参照して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
WORDで改ページすると時々グレ...
-
EXCELからCSVにすると余計なカ...
-
データにカンマが入ったCSVデー...
-
Excelについて質問です。 セル...
-
カンマ区切りの数字をCSVフ...
-
CSVの定義
-
htmlファイルの改行について
-
CSVファイルの保存形式について
-
スラッシュで区切ってもいいの...
-
ひとつの命令を複数行に記述
-
textareaからの入力で改行or空...
-
ログファイルを更新したいのですが
-
テキストエリアの改行を変換(...
-
openoffice calcで#DIV/0! の...
-
半角スペースを有効にしたい
-
CSVファイル中の不規則な数のス...
-
エクセルでCSVデータを見ている...
-
ExcelのCSVファイル出力について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
マクロを使ってフォルダー内に...
-
EXCELからCSVにすると余計なカ...
-
Excelについて質問です。 セル...
-
CSVの定義
-
[VBA][Excel]クリップボードか...
-
WORDで改ページすると時々グレ...
-
カンマ区切りの数字をCSVフ...
-
C#で、テキストボックスの入力...
-
データにカンマが入ったCSVデー...
-
VBAでtxtファイルを読み込む際...
-
カンマ区切り
-
VB2005のTextBoxでカン...
-
メモ帳からエクセルにセル区切...
-
JPY ¥1,500.00は日本円でお幾ら?
-
テキストファイルからReadLine...
-
カンマ区切りでないテキストをc...
-
エクセルにペーストする際にカ...
-
パス区切りの文字について
おすすめ情報