- ベストアンサー
VBでcsvファイルを取り込むときに困っています
- ビジュアルベーシック初心者の私が、VBを使用してcsvファイルを取り込む際に困っています。エクセルに表示するためのプログラムを作成しましたが、取り込んだデータの間に余分な空白が入ってしまいます。空白が入らない取り込み方法はあるでしょうか?別の場所に取り込んで必要なセルだけ転記する方法は避けたいです。
- VB初心者がcsvファイルをエクセルに取り込む際の問題について
- VBを使用してcsvファイルをエクセルに取り込むプログラムを作成しましたが、取り込んだデータの間に余分な空白が入ってしまいます。取り込み時に空白を避ける方法はありますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
TextFileColumnDataTypes プロパティを使って、取り込みをスキップするセルを指定できます。 例: With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\temp\data.csv", Destination:=Range("B3")) .TextFileCommaDelimiter = True .TextFilePlatform = 932 .TextFileColumnDataTypes = Array(xlTextFormat, xlSkipColumn, xlTextFormat, xlSkipColumn, xlTextFormat, xlSkipColumn, xlGeneralFormat) .Refresh BackgroundQuery:=False End With
その他の回答 (2)
- Gin_F
- ベストアンサー率63% (286/453)
> 一度別な場所に取り込み必要なセルだけ転記するというのは避けたいです。 > 意図的に空白のセルを入れたい部分もあります。 取り込み後、不要な列を削除すればいいのでは?
- ryk1234
- ベストアンサー率40% (46/113)
CSVを正しく解釈した結果の動作だと思います。 CSVの区切り文字はカンマ1個で2個続けた場合その列は未定義(NULL)を表します。 ご提示のCSVファイルは必ずカンマが2個入ってますが「未定義」の場合は列を無視したいのでしょうか?
補足
おっしゃる通りです。なお、希望する結果は(B3)のセルからスタートし、 1行目 |あいうえお|かきく|1あ2い3う|12.3|(空白)|45.6|(空白)|78.9|(空白)| 2行目 |あいうえお|かきく|1あ2い3う|12.3|(空白)|45.6|(空白)|78.9|(空白)| 3行目 |あいうえお|かきく|1あ2い3う|12.3|(空白)|45.6|(空白)|78.9|(空白)| というように、意図的に空白のセルを入れたい部分もあります。 可能でしょうか?
補足
取り込まれる側のエクセルシートには既に色々なデータが入っているため、列の削除等の加工は避けたいです。 わがままな内容で申し訳ないです。