Office関連

フォルダ(サブフォルダ含む)内の特定の拡張子のファイルに処理を行うVBAマクロ

Wordマクロ サブフォルダ ファイル処理」といったキーワードでのアクセスがありました。

フォルダ内にあるWordファイルに対してマクロで何か処理を行いたい方の検索でしょうか?

“サブフォルダ”というキーワードも含まれていたので、フォルダの中にあるフォルダ = サブフォルダ内のファイルに対しても処理を行いたいのだと思います。

この手の処理には下記のように再帰処理を行うと良いでしょう。

Option Explicit

Public Sub Sample()
  ListFiles "C:\Files"
  MsgBox "処理が終了しました。", vbInformation + vbSystemModal
End Sub

Private Sub ListFiles(ByVal TargetFolderPath As String)
  Dim fol As Object, f As Object
  
  With CreateObject("Scripting.FileSystemObject")
    If .GetFolder(TargetFolderPath).SubFolders.Count > 0 Then
      For Each fol In .GetFolder(TargetFolderPath).SubFolders
        ListFiles fol.Path
        DoEvents
      Next
    End If
    If .GetFolder(TargetFolderPath).Files.Count > 0 Then
      For Each f In .GetFolder(TargetFolderPath).Files
        '特定の拡張子のファイルのみ処理
        Select Case LCase(.GetExtensionName(f.Path))
          Case "doc", "docm", "docx", "dot", "dotm", "dotx", _
               "htm", "html", "mht", "mhtml", "odt", "pdf", _
               "rtf", "txt", "wpd", "wps", "xml"
          SubProc f.Path
        End Select
        DoEvents
      Next
    End If
  End With
End Sub

Private Sub SubProc(ByVal TargetFilePath As String)
'特定の拡張子のファイルに対して行う処理
  Debug.Print TargetFilePath
End Sub

上記コードはFileSystemObjectを使って”C:\Files”内のファイルを順次処理するもので、GetExtensionNameメソッドを使って拡張子を区別しています。

処理速度的にはFileSystemObjectは決して速いとは言えないのですが、ファイル・フォルダ数が多くない場合や処理時間を気にしなくて良い場合には手軽で便利だと思います。

Windows 10 IMEの「クラウド候補機能」の仕組みを追ってみた。前のページ

SmartArtからテキストを取得するPowerPointマクロ次のページ

関連記事

  1. Office関連

    Acrobatを使ってPDFファイルをNアップするVBAマクロ

    VBAで、B5サイズのPDFファイルを横並びにしてB4サイズのPDFフ…

  2. Office関連

    VBAの力量をはかる3つの質問

    先日、Twitterではけた氏の面白いツイートがありました。3…

  3. Office アドイン

    [Office用アプリ]TechEd North America 2013のセッション資料

    アメリカ・ニューオリンズで現地時間6月3日から6日にかけて開催された開…

  4. アイコン一覧

    Office 365アイコン(imageMso)一覧(M)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  5. Office関連

    Excel 2016 Previewで追加された新しい関数

    ※ 下記情報はOffice 2016 Preview版を元にしています…

  6. Office関連

    Office 2016 Previewをインストールしてみました。

    「Microsoft、「Office 2016」と「Skype for…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP