Search code examples
vbaautomationxlsxxlsm

Way to convert from .xlsx to .xlsm?


So I found code on here to convert from .xls to .xlsm, but I would like to convert from .xlsx to .xlsm.

Sub TrandformAllXLSFilesToXLSM()
Dim myPath As String

myPath = "C:\Excel\"
WorkFile = Dir(myPath & "*.xls")

Do While WorkFile <> ""
If Right(WorkFile, 4) <> "xlsm" Then
    Workbooks.Open FileName:=myPath & WorkFile
    ActiveWorkbook.SaveAs FileName:= _
    myPath & WorkFile & "m", FileFormat:= _
    xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    ActiveWorkbook.Close
 End If
 WorkFile = Dir()
Loop
End Sub

Here is the link


Solution

  • As Compo said, not close to a batch file or vbs at all.

    Added this as a module to mine and and tested it in this particular path. Being a NEWB myself, I am sure there is a cleaner way to do this.

    Sub XLSX2XLSM()
    Dim myPath As String
    
    myPath = "C:\Excel\"
    WorkFile = Dir(myPath & "*.xlsx")
    
    Do While WorkFile <> ""
    If Right(WorkFile, 4) <> "xlsm" Then
    sName = Replace(LCase(WorkFile), ".xlsx", "")
        Workbooks.Open Filename:=myPath & WorkFile
        ActiveWorkbook.SaveAs Filename:= _
        myPath & sName & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        ActiveWorkbook.Close
     End If
     WorkFile = Dir()
     
     
     
     Loop
     
     End Sub