Excelにテキストデータを取込んだあとでxls形式で保存するには?

解決


kanegon  2003-09-03 22:09:35  No: 108469

VBからCSVのデータをテキスト形式に変換してExcel上に読み込ませて起動したのですが、それでは拡張子が.txtのままになってしまいます。

取込んだ後にExcel形式にして自動保存したいのですが、どのようにすれば
よろしいのでしょうか?

.csv形式のデータを.txtに変換してExcelに挿入し、.xls形式で保存したい
のです。

よろしくお願いいたしします。


だっちゃん  2003-09-03 23:57:03  No: 108470

こんちは。

テキストファイルを開くとこまで出来ているなら
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"


kanegon  2003-09-04 06:10:26  No: 108471

だっちゃん様

早速のお返事ありがとうございます。
だっちゃん様のコードを利用してやってみたのですが、
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


だっちゃん  2003-09-04 17:48:11  No: 108472

SaveAsメソッドのExcelのヘルプを確認して貰っていますか?
こちらに保存形式についての引数があることがきちんと書かれています。

いちおうきちんと確認をして貰うことを前提に書きますが・・・。

SaveAs メソッドの引数にFileFormatがあります。
こちらに保存する形式を指定すれば良いです。

MyXL.Application.Workbooks("test.txt").SaveAs FileName:="C:\test.xls", FileFormat:=<フォーマット番号>

注意することは、Excelの固定値を使わないことです。VB側にその固定値は宣言されていません。


kangeon  2003-09-04 18:43:53  No: 108473

だっちゃん様

ありがとうございました。
ヘルプがExcel側にあるのを知らず、ずっとVB側で調べていて
見つかりませんでした。すいませんでした。

おかげさまで解決いたしました。
また何かございましたらよろしくお願いいたします。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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