FileExists について

Excel VBAを使用した場合、ExcelファイルのOpenはWorkbooksオブジェクトで行うので、FileSystemObjectでよく使用するのは、ファイルの存在確認を行うFileExistsメソッドかも知れません!

■FileExistsメソッド

広告

先にも書きましたが、ファイルの存在を確認するメソッドです

・構文

構文は以下の通りです

object.FileExists(filespec)

objectはFileSystemObjectのオブジェクトです

・パラメータ

メソッドのパラメータは以下の通りです

  • filespec … 存在を確認するファイルパス

存在確認を行うファイルのフルパスを指定します(相対パス、もしくは絶対パスにて指定可能)

・戻り値

メソッドの戻り値は以下の通りです

  • True … ファイルが存在する
  • False … ファイルが存在しない

パラメータで指定したファイルが存在する場合はTrueを返し、存在しない場合はFalseを返します

広告

■例

・簡単なサンプル

①FileExistsのサンプル

②呼び出し元関数のサンプル

③簡略化したFileExistsのサンプル

・説明

FileSystemObject型の変数でオブジェクトを作成しないといけませんので、関数化して呼び出すのが便利かと思います

ガッツリ書くのであれば、①の方式で書いて、エラートラップや以下の引数チェックをやるのも良いかも知れません

  • 空文字ではないか?
  • ファイルパス形式か?

簡略化したい場合は、③のようにすればかなりスッキリします!(まぁ、素敵w)

②は呼び出し元ですが、①も③もどちらを呼んでも同じ結果になります!(そりゃそうですねw)

・注意点

特にないのですが、根本的なことなので個々のメソッドで書く必要はないのですが、以下に注意です

  • FileSystemObjectのオブジェクトを作成する場合は、NewでSetしてください!
  • 特に③を使用する場合、Newを書き忘れてもVBA的にはコーディングエラーではなく、実行時エラーになりますのでご注意ください
  • エラートラップやパラメータチェックについては、お任せしますw

・その他

関数の呼び出し毎にFileSystemObjectのオブジェクトを作成したくない人は、標準モジュールではなくクラスモジュールでクラス化してください

  • Class_InitializeイベントでNew FileSystemObject
  • Class_TerminateイベントでNothing

よく使いそうなメソッドについては、個別にサンプルを作っていこうと思います!

ではでは

シェア
広告

やもす ʕ•͡-•ʔ

のんびり!のほほん!がモットーです!w 蕎麦食いたい ライブ行きたい 暑いの嫌い