asaworks

自分の技術備忘録と雑談

【VBA】FileSystemObjectオブジェクトの使い方とよく利用するメソッド

f:id:asa-works:20161013113815p:plainf:id:asa-works:20161107230811p:plain

VBA】FileSystemObjectオブジェクトの使い方とよく利用するメソッド

FileSystemObjectオブジェクトの使い方とよく使うメソッドの備忘録です。

FileSystemObjectを利用することで、VBAの中でWindowsのファイル操作、フォルダ操作が簡単になります。

 

FileSystemObjectオブジェクトの使い方

変数宣言、オブジェクト作成

Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")

よく利用するメソッド

ファイルの移動

objFSO.MoveFile <移動元ファイルパス>, <移動先ファイルパス>, True←Trueにすると上書き ↑MoveFileをmoveFolderにするとフォルダの移動となる

ファイルのコピー

objFSO.CopyFile <コピー元ファイルパス>, <コピー先ファイルパス>, True←Trueにすると上書き ↑CopyFileをcopyFolderにするとフォルダのコピーとなる

ファイルの存在確認

myFSO.FileExists<調べたいファイルのパス> 特定のフォルダの中を調べたいときなどは*(アスタリスク)も利用できる。 例:objFSO.FileExists("C:\Users\user\Documents\test\*.xls") FileExistsをFolderにするとフォルダの存在確認となる。この場合も*は利用可能。

ファイルの削除

objFSO.DeleteFile <削除対象ファイルパス>, True←Trueにすると読み取り専用ファイルも削除 DeleteFileをDeleteFolderにするとフォルダ削除に。

ファイルのパスの連結

objFSO.BuildPath(<連結パス1>, <連結ファイル名>) 文字列連結ではなく、BuildPathを利用する利点として、連結する間の「¥」を必要に応じて調整してくれるらしい。地味に便利。

終了時

Set objFSO = Nothing