'FSOの宣言 Dim bhFSO As FileSystemObject 'Dim bhFSO As Object Set bhFSO = CreateObject("Scripting.FileSystemObject")
'FSOの解放 Set bhFSO = Nothing
FileSystemObjectをコーディングする際には、事前バインディングが便利なので以下の記事を確認して参照設定を行ってください
コード解説
Dim bhFSO As FileSystemObject
これは事前バインディングを行うと使用できる変数の型宣言です
この変数名を使用すると、FileSystemObjectのメソッド等をインテリセンス入力が出来るようになります
'Dim bhFSO As Object
これは事前バインディングを行わなくても使用可能な汎用的な変数の型宣言です
参照設定を行わなくても使用可能なので、コーディング終了後はこちらの宣言を有効にすることで配布用にすることができます
これはコメントアウトしてありますので、先頭の「’」を消去して有効にしてください、その際に1行目の宣言に「’」を入力してコメントアウトします
Set bhFSO = CreateObject("Scripting.FileSystemObject")
このコードを実行すると、FileSystemObjectのインスタンスが作成され、使用可能な状態になります
このコードは基本的には実行時バインディングで行うものですが、最終的にこちらのコードを使用することと事前バインディング時でも使用可能なのでこのコードを使用します
Set bhFSO = Nothing
FileSystemObjectの使用が終わったらこのコードで変数の解放を行います
使用後に挿入して、必ず行ってください。
このコードが実行されるとFileSystemObjectは使用できなくなります
FileSystemObjectのメソッド
コードにより変数「bhFSO」にFileSystemObjectのインスタンスを代入しますので、以降は変数名で処理を実行していきます
オブジェクトは作成した変数を固定で使用します
便宜上、上記で宣言した変数名で以下に記載しています
(bhFSOは変数名なので、可変です)
- bhFSO.CopyFile、bhFSO.CopyFolder
指定のファイル・フォルダをコピーします、ワイルドカードにより複数指定可能 - bhFSO.CreateFolder
フォルダの新規作成、作成したフォルダは変数に代入させる - bhFSO.DeleteFile、bhFSO.DeleteFolder
指定のファイル・フォルダを削除します、フォルダの削除にはこれを使用します - bhFSO.FileExists、bhFSO.FolderExists、bhFSO.DriveExists
指定の存在確認を行うメソッド、ファイルとドライブは重要です - bhFSOT.ReadAll
テキストファイルを一括読み込みします
※ここはFSO本体では無く、そこからさらにテキストファイルを展開したオブジェクトになっています