0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

キーワード検索で指定フォルダ内のファイル名一覧を取得する方法 ExcelVBA

Last updated at Posted at 2021-09-13

##仕様
指定フォルダ内でキーワード検索をして
該当したファイル名一覧をExcelシート上に記入する

・ 動作前に記入セル内をクリアする
・ 以下の時はポップアップ表示

  1. 終了時に該当件数をポップアップ表示
  2. 検索キーワード未記入の場合

##ユーザーから見た画面

①で検索ワードを記入
②「検索する」ボタンを押下
③検索結果のファイル名一覧が表示される
マクロ定義シート見本1.jpg
Cドライブにtestファイルを作りました。
テスト用に作ったフォルダ.jpg
結果画面
マクロ定義シート見本2.jpg
検索キーワード未記入の場合
913.jpg


Sub ファイル一覧の取得()

    Dim format As String '拡張子'
    Dim cnt As Long 'カウント'
    Dim MaxRow As Long '最終行'
    
    Const Path As String = "C:\test\" '固定ディレクトリパス'
    
    buf = Range("B4").Value '検索ワード'
    format = Dir(Path & "*" & buf & "*.xlsx") '検索するExcelファイル名'
    cnt = 6 '検索結果 ファイル名記入セルの行番号-1'
    
    
    Range("B7", Range("B7").SpecialCells(xlLastCell)).ClearContents  '検索結果セル内の値をクリアする'
    
    If buf = "" Then
    
        msg = "検索ワードを入力してください。"
    
        MsgBox msg, Buttons:=vbInformation
    
    Else
    
        Do While format <> ""  '空文字になるまで繰り返す
            cnt = cnt + 1
            Cells(cnt, 2) = format
            format = Dir() 'フォルダに存在するすべてのファイル名を取得する
            
        Loop
        
        Debug.Print cnt
    
        MaxRow = Cells(Rows.Count, 2).End(xlUp).row 'B列=2'
        FileNum = MaxRow - 6 '検索結果数'
        
        
        If FileNum < 0 Then
            FileNum = 0
        End If
        
        
        msg = "検索結果 " & FileNum & " 件"
    
        MsgBox msg, Buttons:=vbInformation
    
    End If
    
End Sub
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?