none
名前を付けて保存が*.xlsxで保存できない RRS feed

  • 質問

  • 次の名前を付けて保存するコードを*.xlsを*.xlsxに変えて保存すると、*.xlsxで保存したファイルが開けなくなります。*xlsのままで保存するなら、きちんと開けます。名前を付けて保存するコードで*.xlsxに対応するコードは他にありますでしょうか?

    Sub test2()
        Dim Save_File, Save_Filename As String
        Save_Filename = "保存するファイル名"
        Save_File = Application.GetSaveAsFilename(Save_Filename, _
             FileFilter:="Excelファイル,*.xls,すべてのファイル,*.*")
        ActiveWorkbook.SaveAs Filename:= _
            Save_File, FileFormat:=xlNormal, _
            Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    End Sub

                               


    • 編集済み kuro1962 2015年12月25日 2:31
    2015年12月25日 2:27

回答

  • こんにちは。

    SaveAsのFileFormatにxlWorkbookDefaultを指定してください。

    Sub test2_New()
         Dim Save_File, Save_Filename As String
         Save_Filename = "保存するファイル名"
         Save_File = Application.GetSaveAsFilename(Save_Filename, _
              FileFilter:="Excelファイル,*.xls,すべてのファイル,*.*")
         'ActiveWorkbook.SaveAs Filename:= _
         '    Save_File, FileFormat:=xlNormal, _
         '    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
         '    CreateBackup:=False
         ActiveWorkbook.SaveAs Filename:= _
             Save_File, FileFormat:=xlWorkbookDefault, _
             Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
             CreateBackup:=False
     End Sub
    #保存ダイアログのFileFilterは適宜直してください。


    2015年12月25日 2:38
    モデレータ

すべての返信

  • Excelのどのバージョンで試されていますか? また、xlsxも同じバージョンのExcelで開こうとされていますか?
    開けない際に何かエラーメッセージは出ていないでしょうか?

    ★良い回答には回答済みマークを付けよう! MVP - .NET  http://d.hatena.ne.jp/trapemiya/

    2015年12月25日 2:31
    モデレータ
  • Excel2013を使っており、*.xlsxで保存したファイルを開くと次のエラーが出ます。

    "Excelでファイル'*.xlsx'を開くことができません。ファイル形式またはファイル拡張子が正しくありません。ファイルが破損しておらず、ファイル拡張子とファイル形式が一致していることを確認してください。"


    • 編集済み kuro1962 2015年12月25日 2:38
    2015年12月25日 2:37
  • こんにちは。

    SaveAsのFileFormatにxlWorkbookDefaultを指定してください。

    Sub test2_New()
         Dim Save_File, Save_Filename As String
         Save_Filename = "保存するファイル名"
         Save_File = Application.GetSaveAsFilename(Save_Filename, _
              FileFilter:="Excelファイル,*.xls,すべてのファイル,*.*")
         'ActiveWorkbook.SaveAs Filename:= _
         '    Save_File, FileFormat:=xlNormal, _
         '    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
         '    CreateBackup:=False
         ActiveWorkbook.SaveAs Filename:= _
             Save_File, FileFormat:=xlWorkbookDefault, _
             Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
             CreateBackup:=False
     End Sub
    #保存ダイアログのFileFilterは適宜直してください。


    2015年12月25日 2:38
    モデレータ
  • ありがとうございました。大変助かりました。

    他にはxlOpenXMLWorkbookも指定できるみたいです。

    2015年12月25日 2:53