0

次のスクリプトを実行していますが、スクリプトを実行するとファイルが閉じないようです。スクリプトを編集してスクリプトを閉じるにはどうすればよいですか。

Sub LoopFiles()

    Dim MyFileName As String, MyPath As String

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    MyPath = "C:\macro\"

    MyFileName = Dir(MyPath & "*.xlsx")

    ChDir "C:\macro\csv"

    Do Until MyFileName = ""
        Workbooks.Open Filename:=MyPath & MyFileName
        ActiveWorkbook.SaveAs Filename:=Left(MyFileName, InStr(1, MyFileName, ".xlsx") - 1), FileFormat:=xlCSV, CreateBackup:=False
        MyFileName = Dir
    Loop

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub
4

1 に答える 1

3

次の行を追加します。ActiveWorkbook.Close False

私が以下に示したスペースで。

Do Until MyFileName = ""
        Workbooks.Open Filename:=MyPath & MyFileName
        ActiveWorkbook.SaveAs Filename:=Left(MyFileName, InStr(1, MyFileName, ".xlsx") - 1), FileFormat:=xlCSV, CreateBackup:=False
        ActiveWorkbook.Close False
        MyFileName = Dir
Loop

または、よりクリーンなバージョンの場合は、次のようにします。

Dim wkb as Workbook

Do Until MyFileName = ""
   Set wkb = Workbooks.Open(Filename:=MyPath & MyFileName)
   With wkb
       .SaveAs Filename:=Left(MyFileName, InStr(1, MyFileName, ".xlsx") - 1), FileFormat:=xlCSV, CreateBackup:=False
       .Close False
   End With
Loop
于 2013-02-13T21:00:42.520 に答える