@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ExcelでCSVファイルを開くとき

投稿者投稿内容
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-25 18:33
こんばんわ。

Winアプリで、今あるCSVファイルをExcelオブジェクトに読み込んで表示しているの
ですが、CSVファイルの区切り文字がTabのため、Excelの列ごとにうまく表示されず、
先頭のセルにすべての文字が繋がって表示されてしまいます。カンマならうまくいく
のですが。。。やはり、Tab=:Trueの設定が間違いでしょうか?

コード:
        Dim lxlsApp  As Object     '' エクセルアプリケーションオブジェクト
        Dim lxlsBook As Object     '' エクセルブックオブジェクト
                
        ''エクセルのアプリケーションオブジェクトを生成する。
        lxlsApp = CreateObject("Excel.Application")
        ''アプリケーションオブジェクトからブックオブジェクトを生成する。
        lxlsBook = lxlsApp.Workbooks.OpenText(filename:="C:/temp/test.csv", Tab:=True)

        ''アプリケーションを表示する。
        lxlsApp.Visible = True


Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2005-01-25 18:43
諸農です。

VBAのHELPを見ると、Formatパラメータが1ってことらしいですけど。

間違っていたらごめんなさい。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2005-01-25 18:48
今晩は。
ちょっとgoogleって見ましたが。

例として
Workbooks.OpenText Filename:="sample.TXT", DataType:=xlDelimited, Tab:=True
とあるので。

lxlsBook = lxlsApp.Workbooks.OpenText(filename:="C:/temp/test.csv", Tab:=True)
ではなく
lxlsBook = lxlsApp.Workbooks.OpenText(filename:="C:/temp/test.csv",, Tab:=True)
→第2引数では無く第3引数ではないでしょうか? 
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-25 18:57
Jubeiさん、NAOさん返信ありがとうございます。

lxlsBook = lxlsApp.Workbooks.OpenText(filename:="C:/temp/test.csv",, Tab:=True)

だとコンパイルエラーみたいです。

このDataTypeって何なのかちょっと調べてみます。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-25 19:44
こんばんわ。

DataTypeはあまり関係なさそうですね。

DataType
省略可能です。バリアント型 (Variant) の値を使用します。ファイルに含まれるデータ
の形式を指定します。使用できる定数は、XlTextParsingType クラスの xlDelimited
または xlFixedWidth です。既定値は xlDelimited です。

いったい何が原因なんでしょうか?どなたかご経験ありませんでしょうか?

ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2005-01-25 23:22
> DataTypeはあまり関係なさそうですね。

OpenText Method は調べていませんが、TextToColumns Method の
Help では規定値が入れ替わって記述されていたので、
Help を過信するのは禁物です。

で、本題ですが、
拡張子を「.csv」から「.txt」に変えてみてください。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-01-26 09:03
おはようございます。
ちゃっぴさん、ご返信ありがとうございます。

確かに拡張子を「.txt」に変えるの可能ですね。しかし「.csv」ファイル
(タブ区切り)をExcelの列ごとに表示はできないのでしょうか?タブをカン
マに変えれば出来る事は分かっていますが、仕様の都合上「.csv」ファイル
をExccelに表示しなくてはいけません。かってなことを言って申し訳ござい
ませんが、よろしくお願い致します。
yyy
常連さん
会議室デビュー日: 2004/01/27
投稿数: 33
投稿日時: 2005-01-26 09:27
With lxlApp
.Workbooks.OpenText Filename:="C:/temp/test.csv",Tab:=True
lxlsBook = .ActiveWorkbook
End With

では如何でしょうか?

スキルアップ/キャリアアップ(JOB@IT)