コピペで使えるVBAのコード置き場

指定ディレクトリ配下のすべてのファイルを処理

筆箱にVBAのカンニングペーパーを入れる係のみすくです。こんにちは。

指定ディレクトリ配下(サブディレクトリを含む)すべてのファイルに処理をするコード。

‘ツール > 参照設定 > Microsoft Scripting Runtime

Option Explicit

'---------------------------------------------------------------------------------------------------
'【処 理 名】ディレクトリ操作
'【処理概要】指定ディレクトリ配下のファイルすべてに処理
'【引    数】[I]ByVal sTopPath As String ディレクトリパス
'【返 却 値】 なし
'---------------------------------------------------------------------------------------------------
Public Sub scanDirectory(ByVal sTopPath As String)
    'ツール > 参照設定 > Microsoft Scripting Runtime
    Dim oFso As New FileSystemObject    'ファイルシステムオブジェクト
    Dim oTopDir As Folder               '先頭ディレクトリ
    Dim oDir As Folder                  'ディレクトリ
    Dim oFile As File                   'ファイル
    
    On Error GoTo Term
    '先頭ディレクトリオブジェクト取得
    Set oTopDir = oFso.GetFolder(sTopPath)
    
    'ディレクトリ配下のディレクトリパス名を取得する
    For Each oDir In oTopDir.SubFolders
        'ショートカット以外
        If oDir.Attributes <> Alias Then
            '再帰
            Call scanDirectory(oDir.Path)
        End If
    Next
    
    'ディレクトリ直下のすべてのファイル
    For Each oFile In oFso.GetFolder(sTopPath).Files
        'ファイルごとの処理
        'Debug.Print (oFile.Name)
    Next
    
Term:
    Set oFso = Nothing
    Set oTopDir = Nothing
    Set oDir = Nothing
    Set oFile = Nothing
End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です