FileSystemObjectのGetFileメソッド
FileSystemObjectのGetFileメソッドは、引数で指定したファイルの情報の設定や参照したり、コピーや移動などを行うことができるFileクラスオブジェクトを返します。
Fileクラスオブジェクトは1ファイルのみが対象になります。
FileSystemObjectの他のメソッドやプロパティは「FileSystemObjectとTextStreamのメソッド・プロパティ一覧」をご参照ください。
構文
Function GetFile(FilePath As String) As File
FilePath | Fileクラスオブジェクトを取得する対象のファイルパスを指定します。ファイル名だけを指定した場合はカレントディレクトリのファイルが対象になります。ワイルドカードは利用できません。 |
戻り値 | 引数FilePathのファイルが存在していればそのファイルのFileオブジェクトを返します。
存在しない場合はNothingが返されます。Nothingであることの判定は「If Fileオブジェクト変数 Is Nothing」と書くことで判定できます。逆にNothingではないことの判定にはNot演算子を使って「If Not Fileオブジェクト変数 Is Nothing」のように書きます。 |
エラー対応
GetFileメソッドでは、対象のファイルパスが存在しない場合は実行時エラー53「ファイルが見つかりません。」が発生します。
このようなエラーが発生すると通常はメッセージボックスが表示され、処理はそこで止まってしまいます。
処理を止めないようにするためにはエラー処理を適切に行う必要があります。
具体的には「On Error Goto XXX」でエラー発生時にエラーラベルまで処理を飛ばしたり、「On Error Resume Next」でエラーが発生しても処理を継続するようにしておいたほうがよいでしょう。
事前設定
以下のサンプルコードでは参照設定でFileSystemObjectクラスを利用できるようにしています。
FileSystemObjectクラスを利用するには、事前にVBA画面→ツールメニュー→参照設定、を選択し、参照設定ダイアログで「Microsoft Scripting Runtime」にチェックを付けます。
詳細は「VBAでのFileSystemObjectとTextStreamの使い方」の事前設定をご参照ください。
サンプルコード
指定ファイルのFileクラスオブジェクトを取得するサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub FileSystemObjectGetFile() '// エラー発生時も処理を継続 On Error Resume Next Dim fso As New FileSystemObject '// FileSystemObjectクラス Dim oFile As File '// Fileクラス Dim sFilePath '// ファイルパス '// ファイルパスを指定 sFilePath = "C:\test\cc.txt" '// 指定ファイルのFileオブジェクトを取得 Set oFile = fso.GetFile(FilePath:=sFilePath) '// Fileオブジェクトが取得できた場合 If Not oFile Is Nothing Then '// ファイルサイズを出力 Debug.Print oFile.Size End If '// エラー発生時 If Err.Number <> 0 Then '// エラー内容を出力 Debug.Print Err.Number & " " & Err.Description End If End Sub |
指定したファイルパスのFileオブジェクトを取得するコードです。
Fileオブジェクトが取得できた場合には、FileクラスのSizeプロパティを使って対象ファイルのサイズを出力しています。
GetFileメソッドは引数に存在しないファイルパスが設定された場合にエラーが発生するため、エラー処理「On Error Resume Next」でエラーが発生しても処理を継続するようにしています。
エラーが発生した場合はその内容をイミディエイトウィンドウに出力します。
FileSystemObjectクラスのオブジェクト変数に対して、「Set fso = Nothing」のようなコードがありませんが、なくても問題ありません。詳細については「VBAでのFileSystemObjectとTextStreamの使い方」をご参照ください。