• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBでcsvファイルを取り込むときに・・・)

VBでcsvファイルを取り込むときに困っています

このQ&Aのポイント
  • ビジュアルベーシック初心者の私が、VBを使用してcsvファイルを取り込む際に困っています。エクセルに表示するためのプログラムを作成しましたが、取り込んだデータの間に余分な空白が入ってしまいます。空白が入らない取り込み方法はあるでしょうか?別の場所に取り込んで必要なセルだけ転記する方法は避けたいです。
  • VB初心者がcsvファイルをエクセルに取り込む際の問題について
  • VBを使用してcsvファイルをエクセルに取り込むプログラムを作成しましたが、取り込んだデータの間に余分な空白が入ってしまいます。取り込み時に空白を避ける方法はありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.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)
回答No.2

> 一度別な場所に取り込み必要なセルだけ転記するというのは避けたいです。 > 意図的に空白のセルを入れたい部分もあります。 取り込み後、不要な列を削除すればいいのでは?

MohMoh
質問者

補足

取り込まれる側のエクセルシートには既に色々なデータが入っているため、列の削除等の加工は避けたいです。 わがままな内容で申し訳ないです。

  • ryk1234
  • ベストアンサー率40% (46/113)
回答No.1

CSVを正しく解釈した結果の動作だと思います。 CSVの区切り文字はカンマ1個で2個続けた場合その列は未定義(NULL)を表します。 ご提示のCSVファイルは必ずカンマが2個入ってますが「未定義」の場合は列を無視したいのでしょうか?

MohMoh
質問者

補足

おっしゃる通りです。なお、希望する結果は(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|(空白)| というように、意図的に空白のセルを入れたい部分もあります。 可能でしょうか?