エクセルでCSV開いてシートの一部をコピーするには?

解決


くもり  2009-07-27 15:14:36  No: 142255  IP: 192.*.*.*

はじめまして、宜しくお願いします。

VB6.0でエクセルを使っています。

Set xlBook = xlApp.Workbooks.Open(xxx.csv)
Set xlSheet = xlZenBook.Worksheets("シート名")
xlSheet.Range("A1:Z1").Select
Selection.Copy

上記のようにcsvファイルを開いて
シートの"A1:Z1"をコピーして別に開いたxlsファイルに
貼り付けしたいと思います。

xlSheet.Range("A1:Z1").Select
のところでselectメソッドに失敗しました。
というエラーが出てしまいうまくいきません。
ブックをxlsファイルにするとエラーにはなりませんでした。
CSVファイルではほかに何か良い方法はありますか?

編集 削除
いな  2009-07-27 17:29:44  No: 142256  IP: 192.*.*.*

CSVファイルは、Excelと関連付けられているかもしれませんが
もともと、メモ帳などで開けるテキストファイルなので、
読込みの方法は、txtファイルと同様の方法で問題ありません。
http://hanatyan.sakura.ne.jp/vbhlp/txt01.htm

もともとシートという概念のないファイル形式なので
エラーとなるのでしょう。

編集 削除
いな  2009-07-27 17:33:34  No: 142257  IP: 192.*.*.*

書き忘れましたが、

CSV(テキスト)ファイルを読み込んで
Excelに書き出す。というやり方になると思います。
ただ、この場合、CSVのデータを持ったxlsファイルになりますが・・・。

個人的には、CSVファイルをExcelで開く行為自体に
生理的ともいえる拒絶反応がありますが・・・。

編集 削除
ひよこ  2009-07-27 19:10:05  No: 142258  IP: 192.*.*.*

コピーしたい位置が  A1:Z1ということはCSVでいうと1行目だけを別のエクセルにコピーしたいということでいいのでしょうか?

エクセルのブックを2つ開くことが必須でなければ、CSVファイルを1行読み込
んで、Split(",")で  「,」ごとに区切って配列に格納して、それをエクセ
ルのブックに書き込んでいくという方法はどうでしょうか?

もしくはVBからはエクセルを開く動作だけ行い、エクセルのマクロで区切り文字を「,」で外部データの取り込を行えばエクセルでCSVファイルを開けると思います。

編集 削除
くもり  2009-07-28 16:59:00  No: 142259  IP: 192.*.*.*

いなさん、ひよこさんありがとうございます。

テキストファイルとして読み込んでエクセルに
貼り付ける方法でやってみようと思います。

編集 削除
くもり  2009-07-30 11:37:46  No: 142260  IP: 192.*.*.*

ありがとうございました。

編集 削除