FileSystemObject を使用する手順がいくつかあります。かなり便利だと思います。
質問: 各プロシージャに FileSystemObject の独自のインスタンスを作成させるのではなく、FileSystemObject の既存のインスタンスを「メイン」プロシージャからこれらの他のプロシージャに引数として渡すことは賢明ですか?
例:これを行う方が良いですか:
Sub MainSub()
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Call OtherSub(FSO, myargs)
' call other subs and functions that use FileSystemObject
End Sub
Sub OtherSub(FSO, myargs)
' Do stuff with FSO
' call other subs and functions that use FileSystemObject
End Sub
これは、私が通常行っている次のことではなく、少なくとも 1 人のプログラマーが行っているのを見たことがあります。
Sub MainSub()
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Call OtherSub(myargs)
' call other subs and functions that use FileSystemObject
End Sub
Sub OtherSub(myargs)
Dim FSO : Set FSO = CreateObject("Scripting.FileSystemObject")
Call OtherSub(myargs)
' Do stuff with FSO
' call other subs and functions that use FileSystemObject
End Sub
前者を実行すると、FileSystemObject の複数のインスタンスを持つことに関連するオーバーヘッドが削減される可能性があるという点で、前者を実行するという考えが理解できます。しかし、毎回 FSO を引数として渡さなければならないのは非常に面倒です。真剣に、オーバーヘッドは本当にそんなに大きいのでしょうか?