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

解決


くもり  2009-07-28 00:14:36  No: 142255

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

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-28 02:29:44  No: 142256

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

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


いな  2009-07-28 02:33:34  No: 142257

書き忘れましたが、

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

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


ひよこ  2009-07-28 04:10:05  No: 142258

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

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

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


くもり  2009-07-29 01:59:00  No: 142259

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

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


くもり  2009-07-30 20:37:46  No: 142260

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加