再帰的にファイルを検索

ページ番号: 1 2

【環境】Windows 10 Pro 64bit、Excel for Office 365

広告

さてさて、ファイル一覧を自動で作成するには、もちろんカレントフォルダ配下のファイルを検索する! これですよねー

さー!作っていきましょー

※以下の記事でも記載しましたが、本来は実行時バインディングに簡単に変換できるようなコーディングをお勧めしています
しかし、各記事の中では必要なコードだけを書いていますので、実際にご自身でコーディングされるときは、ご注意ください!

■FileSystemObject

再三にわたり出てきているFileSystemObjectを使ってファイルを検索していきます! まずは指定したフォルダの直下のファイル名だけを表示するコードを書いてみます

Sub GetFileInfo(path As String)
    Dim fl      As file    
    With New FileSystemObject
        ' pathのファイルを取得
        For Each fl In .GetFolder(path).files
            ' ファイル名を表示
            Debug.Print fl.name
        Next
    End With
End Sub

・説明

やることは単純で、以下の4つです

  • 引数で指定のフォルダパスを受け取り
  • FileSystemObjectを作成
  • GetFolderメソッドのFilesプロパティからFileオブジェクト単位で取得
  • Fileオブジェクトからファイル名を取得

・GetFolderメソッド

構文は以下の通りで、指定フォルダのFolderオブジェクトを取得します

指定フォルダが存在しないとエラーになりますが、指定フォルダのパス文字列の最後は「¥」じゃなくても良いです

object.GetFolder(folderspec)

  • object:FileSystemObjectのオブジェクト
  • folderspec:指定フォルダのパス(絶対か相対)
広告

・Filesプロパティ

構文は以下の通りで、指定フォルダの全てのFileオブジェクトで構成されるFilesコレクションを取得します

object.Files

  • object:Folderのオブジェクト

・Folderオブジェクト

Folderオブジェクトには以下が含まれます(主なもの)

  • Copyメソッド
  • Deleteメソッド
  • Filesプロパティ
  • SubFoldersプロパティ
  • Moveメソッド
  • Nameプロパティ
  • Pathプロパティ

・Fileオブジェクト

Fileオブジェクトには以下が含まれます(主なもの)

  • Copyメソッド
  • DateCreatedプロパティ
  • DateLastAccessedプロパティ
  • DateLastModifiedプロパティ
  • Deleteメソッド
  • Moveメソッド
  • Nameプロパティ
  • Pathプロパティ
  • Sizeプロパティ
  • Typeプロパティ
ページ番号: 1 2
広告

やもす ʕ•͡-•ʔ

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

シェアする