2017-11-29 38 views
0

xlsmからxlsxへの変更方法を教えてください。 xlsx拡張子を持つxlsmファイルのコピーを保存するスクリプトが必要ですが、ファイル名を入力する必要はありません。元の名前を保持する必要があります。ユーザーが保存する場所を選択するだけですファイル。xlsmからxlsxへの変換方法(

Sub changeext() 

Dim s_as As String 

s_as = ThisWorkbook.FullName 

s_as = Left(s_as, InStrRev(s_as, ".") - 1) & ".xlsx" 

ThisWorkbook.SaveAs FileName:=s_as 

Application.DisplayAlerts = False 

End Sub 
+0

あなたが持っている正確な問題は何ですか? –

+0

私のコードは、新しいファイルの名前を入力するよう促しています。元のxlsmファイルの名前が自動的に入力されるようにする必要があります。ユーザーはファイルの名前を変更できません。 –

+0

私の答えを参照してください –

答えて

1

マクロを有効にしたブックを上書きしないで、.xlxsコピーを追加したいと思うだけです。コードの下の行を試して、それが動作する必要があります、 "ワークブックの名前をここに"あなたのブック名を入れて、開いたままのファイルは、.xlsxファイルになります。

あなたはFolderPicker関数を作成する必要が
Application.ScreenUpdating = False 
Application.DisplayAlerts = False 

ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & "Put Workbook Name here" & ".xlsx", FileFormat:=51, Password:="", WriteResPassword:="", _ 
ReadOnlyRecommended:=False, CreateBackup:=False 

Application.DisplayAlerts = True 
Application.ScreenUpdating = True 
+0

これは素晴らしい作品!それは私が必要とするコピーを作成した、唯一のことは、自動的に元のフォルダと同じフォルダに保存されます。どのように私はそれを変更することができますので、私はそれを保存したいのですか?それは可能です –

+0

"Activeworkbook.Path"を引用符で "C:\ Folder \ SubFolder \"に置き換えます。ドライブ文字、フォルダ、およびサブフォルダ名を、ファイルを保存する場所に置き換えます。 – GMalc

1

Sub changeext() 
Dim objFolder As Object, objFSO As Object 

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFSO.GetFolder(ChooseFolder) 

ThisWorkbook.SaveCopyAs Filename:=objFolder & "\" & Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 4) & "xlsx" 

End Sub 

Function ChooseFolder() As String 
Dim fldr As FileDialog 
Dim sItem As String 

Set fldr = Application.FileDialog(msoFileDialogFolderPicker) 
With fldr 
    .Title = "Select a Folder to save down the copy of this workbook" 
    .AllowMultiSelect = False 
    .InitialFileName = strPath 
    If .Show <> -1 Then GoTo NextCode 
    sItem = .SelectedItems(1) 
End With 

NextCode: 
    ChooseFolder = sItem 
    Set fldr = Nothing 
End Function 
+0

ありがとう、このコードは素晴らしい!それはまさに私が必要としているが、新しいファイルを開こうとすると、どうしてエラーメッセージが出るのかわからない。ファイルのフォーマットやファイルの拡張子が無効であるため、ファイル "filename.xlsx"を開くことができません。ファイルが破損していないこと、ファイル拡張子がファイルのフォーマットと一致していることを確認してください。どのようにこの問題を解決するか分からない。 –

+0

a。 "xlsx"を ".xlsx"に変更する前に必要です – GMalc

関連する問題