VBA100本ノック 32本目:Excel終了とテキストファイル出力

こちらで公開されている、100本ノックに挑戦。
www.excel-ubara.com
素晴らしい教材を公開いただき、ありがとうございます。

上記リンク先から、問題文を転載。

ファイル操作などを行う際、DirとFileSystemObjectのどちらを使用すべきか?
が話題にあがるように思う。個人的にはFileSystemObjectの方が好みだ。先日
新たに知ったのだが、

FSO.BuildPath(A, B)

とすると、Aの末尾に「\」があってもなくても、良い感じにAとBを繋いで
くれる。これは便利だ。

また、テキストファイルへの書き出しは偶にしか行わないので、いつもうろ
覚えだったりする。今回は、良い復習の機会になった。

Sub VBA_100Knock_032()
    ' Microsoft Scripting Runtimeを参照済み。
    Dim FSO As Scripting.FileSystemObject
    Set FSO = New Scripting.FileSystemObject
    
    ' ログ用ファイルの作成と
    Dim LogPath As String
        LogPath = FSO.BuildPath(ThisWorkbook.Path, Format(Now, "yyyymmddhhmmss.txt"))
        FSO.CreateTextFile LogPath
        Open LogPath For Output As #1
    
    ' 起動中のブックについて、パスをログファイルに書き出したうえで上書き保存。
    Dim Wb As Workbook
        For Each Wb In Workbooks
            If Wb.Name <> ThisWorkbook.Name Then
                Print #1, Wb.FullName
                Wb.Close SaveChanges:=True
            End If
        Next
    
    ' マクロブックのパスの書出しと終了。
        Print #1, ThisWorkbook.FullName
        Close #1
        
        ThisWorkbook.Close SaveChanges:=True
    
    ' Excelの終了。
        Application.Quit
End Sub

※冒頭リンク先の解答例および解説も、ぜひご一読ください。

参考まで。