
カンマ区切りのCSVファイルをテキストとして読み込んだ時の挙動についてお伺いします。
現在、excelマクロで印刷用のファイルとCSVを作成するプログラムを作っています。
以下、流れになりますが、
1.外部サイトからCSVファイルをDL
2.マクロファイルを開いて1のCSVを指定する。
3.テキストウィザード処理(マクロの記録を流用)を含めマクロが実行される
4.印刷用のxlsxファイル(とCSV)が作成される。
5.4で作成されたCSVファイルを他システムに流し込む。
DLしてきたデータ数(175)がある一定のレコード数(例えば180)より少ないと、
5データ分が「,」としてなぜか埋まっています。
テキストにして初めてわかりましたが、excelファイル上だともちろん何もないので気づきませんでした。
その状態で5をすると、5データ分が空データ扱いになりエラーが出てきてしまいます。
データの量は可変なので、上記の例だと180より少ないレコード数の場合、差分行をdeleteしています。
ただテキストウィザードで1つずつ進めてみると、データ量にかかわらずゴミがないデータが作成されているので、
違いがわかっていません。
ご存知の方がいましたら、ご教授お願いします。
以下、3の処理です。
openfileは2で指定したフルパスファイルで、Fname2はファイル名を指しています。
With ActiveSheet.QueryTables.Add(Connection:="text;" & openfile, Destination:=Range("$A$1"))
.Name = Fname2
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 1, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 1, 2, 1, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
No.1ベストアンサー
- 回答日時:
可能性のひとつとして読んでください。
アクティブシートの$A$1セル以降にcsvファイルが読み込まれますが、そもそもアクティブシートの180行目までデータが入っていませんか?
csvファイルを読み込む前の状態において、見た目は何もなくても、空白が入力されている可能性があります。
一旦、全行削除してから取り込みを行えば、イケるような気がします。
アドバイス有難うございます。
せっかく教えて頂きましたが、大きいファイルと小さいファイルで試したりなどしているうちに、現象が収まっていました。
ただ、ご回答のことは気づかなかったのでそれはしておきます。
有難うございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】並び替えの範囲が、...
-
VBA ユーザーフォーム ボタンク...
-
2つのマクロでチェックボックス...
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
[VB.net] ボタン(Flat)のEnable...
-
VBAでCOPYを繰り返すと、処理が...
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】値を変更しながら...
-
Excelのマクロについて教えてく...
-
【ExcelVBA】5万行以上のデー...
-
VBAでセルの書式を変えずに文字...
-
Excel VBA 選択範囲の罫線色の...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
エクセルの改行について
-
エクセルのVBAコードと数式につ...
-
ExcelのVBAコードについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Vba セルの4辺について罫線が有...
-
vbsでのwebフォームへの入力制限?
-
【ExcelVBA】5万行以上のデー...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
【マクロ】並び替えの範囲が、...
-
エクセルの改行について
-
エクセルのマクロについて教え...
-
vb.net(vs2022)のtextboxのデザ...
-
VBAでCOPYを繰り返すと、処理が...
-
VBA ユーザーフォーム ボタンク...
-
エクセルのVBAコードと数式につ...
-
エクセルのVBAコードについて教...
-
[VB.net] ボタン(Flat)のEnable...
-
【マクロ】変数を使った、文字...
-
改行文字「vbCrLf」とは
-
質問58753 このコードでうまく...
-
【マクロ】シートの変数へ入れ...
-
ワードの図形にマクロを登録で...
-
算術演算子「¥」の意味について
おすすめ情報