FolderExists について

Excel VBAを使用した場合、ExcelファイルのOpenはWorkbooksオブジェクトで行うので、FileSystemObjectでファイル作成を行う場合、ファイルだけでなくフォルダの存在確認を行うFolderExistsメソッドも必要ですね!

■FolderExistsメソッド

広告

フォルダの存在を確認するメソッドです

・構文

構文は以下の通りです

object.FolderExists(folderspec)

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

・パラメータ

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

  • folderspec … 存在を確認するフォルダパス

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

・戻り値

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

  • True … フォルダが存在する
  • False … フォルダが存在しない

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

広告

■例

・簡単なサンプル

‘ ①FolderExistsのサンプル

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

‘ ③簡略化したFolderExistsのサンプル

・説明

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

ステップをきっちりと書きたい人は、①の方式で書いた上で、エラートラップや以下の引数チェックをやるのが良いかも知れません

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

簡略化したい場合は、③のようにすればよいでしょう

②は呼び出し元です

①でも③でもどちらを呼んでも同じ結果になります!

・注意点

根本的なことなので個々のメソッドで書く必要はない内容ではありますが、多くのメソッドでは書かないようにするので、このあたり頻繁に使いそうなメソッドで書いておこうと思います

  • FileSystemObjectのオブジェクトを作成する場合は、NewでSetしてください!
  • 特に③を使用する場合、Newを書き忘れてもVBA的にはコーディングエラーではなく、実行時エラーになりますのでご注意ください
  • エラートラップやパラメータチェックについては、コーディング方針(最下位のメソッドでチェックするか、上位でチェックするか等)に従ってください

・その他

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

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

ではでは

シェア
広告

やもす ʕ•͡-•ʔ

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