VBからCSVのデータをテキスト形式に変換してExcel上に読み込ませて起動したのですが、それでは拡張子が.txtのままになってしまいます。
取込んだ後にExcel形式にして自動保存したいのですが、どのようにすれば
よろしいのでしょうか?
.csv形式のデータを.txtに変換してExcelに挿入し、.xls形式で保存したい
のです。
よろしくお願いいたしします。
こんちは。
テキストファイルを開くとこまで出来ているなら
Workbooksに開いているブック名(テキストファイル名)を指定しSaveAsメソッドで保存します。
SaveAsメソッドの引数に関してはExcelのヘルプを参照してください。
Set MyXL = CreateObject("Excel.Application")
MyXL.Application.Workbooks.Open "c:\test.txt"
MyXL.Application.Visible = True
MyXL.Application.Workbooks("test.txt").SaveAs FileName:="C:\test.xls"
だっちゃん様
早速のお返事ありがとうございます。
だっちゃん様のコードを利用してやってみたのですが、
Excel表示後に上書き保存しようとすると、ファイルの
種類がテキスト(タブ区切り)のままになってしまっています。
下記にソースを書いてみました。
何かおかしいところがあれば教えてください。
よろしくお願いいたします。
(記述しているソース)
Private Sub Command2_Click()
'CSVファイルの読込
Dim xlApp As Excel.Application
Dim FileName As String
Dim xlSheet As Excel.Workbook
'拡張子を変更してファイルをコピー
FileCopy App.Path & "\test.csv", App.Path & "\test01.txt"
'コピー元の.csvを削除する
'Kill App.Path & "\test.csv"
'CSVファイルを拡張子を変更して読込
FileName = App.Path & "\test01.txt"
'オブジェクト変数にオブジェクトの参照を代入
Set xlApp = New Excel.Application
(一部省略)
xlApp.Range("A1").Select 'ホームポジションに移動
xlApp.Workbooks("test01.txt").SaveAs FileName:=App.Path & "\test.xls"
xlApp.Visible = True 'Excelを表示
Set xlApp = Nothing 'オブジェクトとの関連付けを解除
End Sub
SaveAsメソッドのExcelのヘルプを確認して貰っていますか?
こちらに保存形式についての引数があることがきちんと書かれています。
いちおうきちんと確認をして貰うことを前提に書きますが・・・。
SaveAs メソッドの引数にFileFormatがあります。
こちらに保存する形式を指定すれば良いです。
MyXL.Application.Workbooks("test.txt").SaveAs FileName:="C:\test.xls", FileFormat:=<フォーマット番号>
注意することは、Excelの固定値を使わないことです。VB側にその固定値は宣言されていません。
だっちゃん様
ありがとうございました。
ヘルプがExcel側にあるのを知らず、ずっとVB側で調べていて
見つかりませんでした。すいませんでした。
おかげさまで解決いたしました。
また何かございましたらよろしくお願いいたします。
ツイート | ![]() |