SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
SEの転職活動で使うべきサイト・エージェント 目指せ年収アップ
東南アジアをバックパッカーしながら転職活動をした記録
東南アジアをバックパッカーしながら転職活動をした記録
7年目で初の転職活動 2カ月で内定獲得した記録
7年目で初の転職活動 2カ月で内定獲得した記録
おすすめのプログラミングスクール めざせ就職・年収アップ!
おすすめのプログラミングスクール めざせ就職・年収アップ!
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
メンズクリア2年通い放題入会! その後のヒゲ状況(不定期更新)
ブログ開始3年が経った月収が1万超えてた!
ブログ開始3年が経った月収が1万超えてた!
プログラミング独学・スクール・就職(目次)
プログラミング独学・スクール・就職(目次)
previous arrowprevious arrow
next arrownext arrow
 
Shadow
VBA

VBAでフォルダ内のファイルを検索する

VBAでフォルダ内を検索する方法について紹介します。

実際に作ったファイルはこちらから無料でダウンロードできます。

エクセルの仕様

仕様は、記載したパスから文字列で前方後方一致で検索します。

該当したファイルをE列に記載します。

使い方

  1. 検索するパスと、文字列を記載
  2. 検索ボタンをクリック
  3. E列に該当したファイルが書き出しされる

 

マクロが無効にされる場合

ダウンロードすると、以下のような警告が表示されることがあります。

ファイルを右クリックして、プロパティから「許可する」にチェックを入れて下さい。

コードの解説

コード

'==============================
'目的       :フォルダからファイルを検索して、セルに書き込む
'==============================
Sub SearchFiles_Click()

    Dim FileName As String                        '検索するファイル名
    Dim SearchText As String                      '検索するファイル名
    Dim SearchPath As String                      '検索するフォルダpath
    Dim Cnt As Long                               'カウント用変数
    Dim Files() As String                         'ファイルパス格納用配列
    
    
    '------------初期化処理------------
    'ファイルパスの書き込みエリアをクリアする
    ThisWorkbook.Sheets("Sheet1").Columns("E").ClearContents
    ThisWorkbook.Sheets("Sheet1").Range("E4") = "該当ファイル一覧"
    
    
    SearchPath = ThisWorkbook.Sheets("Sheet1").Range("検索パス")
    SearchText = ThisWorkbook.Sheets("Sheet1").Range("検索文字")
    
    '------------検索結果をセルに書き込む------------
    'ファイルを検索
    FileName = Dir(SearchPath & "\*" & SearchText & "*")
    
    Do While FileName <> ""
        'E1セルから順番にファイルパスを記述する
        ThisWorkbook.Sheets("Sheet1").Range("E" & Cnt + 5) = FileName
        
        Cnt = Cnt + 1
        
        ' 次のファイル名を参照
        FileName = Dir()
    Loop
    

    MsgBox "検索が完了しました。"
    
    
End Sub

解説

13行目の「初期化処理」で前回出力した内容をクリアしています。

19、20行目でエクセル内でセットした検索フォルダと、文字列をセットしています。

24行目で該当するファイルの一覧を検索して、FileNameに取得しています。

26~34行目でファイルの一覧を最後までE列に書き込んでいます。

ABOUT ME
LooseCarrot
LooseCarrot
ブログ運営をしているLooseCarrotです。 興味のあることにトライして発信していきます! プロフィール

関連している記事