2017-08-02 950 views
0

.xlsb extenstionを持つExcelファイルがあり、そのマクロを使用して内容に基づいていくつかのExcelシートを生成します。マクロは元のExcelファイルを変更し、SaveCopyAsメソッドを使用して生成されたExcelシートを保存する方法で動作します。Excel VBA:異なるファイル拡張子を持つSaveCopyAs

生成されたExcelシートは、.xlsx拡張子と形式で保存する必要があります。

ActiveWorkbook.SaveCopyAs「C:\ TEMP \ XXXX.XLSX」メソッドを使用すると、拡張子を変更してもファイル形式が変更されないため、生成されたExcelファイルを開くときに警告が表示されるためメッセージ(「ファイル拡張子とフォーマットが一致しません」など)。 SaveCopyAsメソッドには他の引数はありません。

元の.xlsbファイルのコピーを、拡張子とフォーマットをともに.xlsxに変更するにはどうすればできますか?

注:Workbook.SaveAsメソッドにはfileformatオプションがありますが、それが役立つかどうかはわかりません。

+1

ファイルのコピーを作成する理由はありますか?新しいワークブックを作成し、新しいワークブックのワークシートに直接書き込むことも、新しいワークブックの内容をコピーすることもできますか? – Zac

+0

私は本当にVBAで新人だということ以外は特別な理由はありません。コンテンツが生成されたら、新しいExcelシートを作成し、元のファイルからこの新しいファイルにタブの1つをコピーしてから、正しいファイル名で新しいファイルを保存すれば、完璧に実行可能です。そのためのサンプルコードを私に与えることができると思いますか? – Istvanb

+0

コードを提供できる場合は、 – Zac

答えて

0

私の場合は、Zacのヒントに基づいて、関連する変更を含むタブを新しく作成したExcelファイルにコピーして、新しいファイル名で保存する方がよい場合があります。

ThisWorkbook.Sheets("myTab").Copy 
ActiveWorkbook.SaveAs Filename:="c:\temp\xyz.xlsx", FileFormat:=51 
ActiveWorkbook.Close 

これは、実際にエンドユーザーとして、私のために多くの良いソリューションであり、実際にすぎず、マクロやorginalエクセルファイル内の他のデータ生成されたタブを必要とします。

関連する問題