こちらで公開されている、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
※冒頭リンク先の解答例および解説も、ぜひご一読ください。
参考まで。