重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

困っています。ビジュアルベーシック初心者です。

次のようなcsvデータがあります。
「あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9
 あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9
 あいうえお,,かきく,,1あ2い3う,,12.3,,45.6,,78.9」
※あいう等はテキスト、123等は数値(小数)

これをエクセルに表示するため、
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & (ファイル名), Destination:=Range("B3"))
 .TextFileCommaDelimiter =True
 .Refresh BackgroundQuery =False
End With

とプログラムしました。
ところが、エクセルをみると全てのデータの間に1マスづつ余計なセル(空白)が入ります。
空白が入らない取り込み方はあるでしょうか?
なお、一度別な場所に取り込み必要なセルだけ転記するというのは避けたいです。
アドバイスを宜しくお願いします。

A 回答 (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
    • good
    • 0

> 一度別な場所に取り込み必要なセルだけ転記するというのは避けたいです。


> 意図的に空白のセルを入れたい部分もあります。

取り込み後、不要な列を削除すればいいのでは?

この回答への補足

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

補足日時:2005/02/08 22:10
    • good
    • 0

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|(空白)|

というように、意図的に空白のセルを入れたい部分もあります。
可能でしょうか?

補足日時:2005/02/08 21:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!