このコードを書き直すことが可能かどうか知りたいのですが:
Private Sub PrepareDir(ByVal dir As String)
Dim fso As New FileSystemObject
If fso.FolderExists(dir) Then Call fso.DeleteFolder(dir, True)
Call fso.CreateFolder(dir)
End Sub
VBAステートメントの場合:Kill、MkDirなど。これの最も「難しい」部分-空でないディレクトリを削除します。 FSOを使用すると簡単に実行できますが、FSOを使用せずに実行するにはどうすればよいでしょうか。
このccodeは、RmDirを使用してフォルダーを削除します。 AFAIK、RmDirはフォルダが空でない限り削除できないため、最初にフォルダ内のコンテンツをクリアしてから、ディレクトリを削除します。
Private Sub PrepareDirModified(dirStr As String)
On Error Resume Next
If Right(dirStr, 1) <> "\" Then dirStr = dirStr & "\"
Kill dirStr & "*.*"
RmDir dirStr
MkDir dirStr
On Error GoTo 0
End Sub
お役に立てれば。
OPは、「 [〜#〜] fso [〜#〜] "なしでコードを書き直したいが、意味がありません。
目標がコードの量を減らすことである場合は、単にそれをワンライナーにします。
CreateObject("Scripting.FileSystemObject").DeleteFolder "x:\myFolder"
要求に応じて、これは永久にフォルダを削除し、その内容を削除します。