No.1ベストアンサー
- 回答日時:
こんにちは。
maruru01です。自作ですが。
この例では、ファイル名をフルパスで返しますので、ドライブ名が欲しかったら、切り出して下さい。
また、この例では、あるフォルダ内の下部階層まで検索します。したがって、フォルダにドライブ名(a:\など)を指定してやればドライブごとに検索出来ます。
また、この例では、隠しファイルなど特殊な属性のファイルは検索出来ませんので、必要に応じてDIR関数の第2引数をいじって下さい。
では。
***** 標準モジュールに *****
'SearchFol内の全ファイルを対象にSearchFileを探し、あればフルパスで返す
Public Function AllDirSearchFile(SearchFol As String, searchFile As String, Optional searchMode As Integer = vbBinaryCompare) As String
Dim sf As String 'パスなしのSearchFile
Dim setPath As String '現在のパス
Dim checkName As String '調べるファイル(フォルダ)
Dim checkFlag As Boolean '繰り返しの終了判定
Dim pathCount As Integer '処理するパスの個数
Dim pathList() As String 'パス名のリスト
AllDirSearchFile = ""
sf = MakeFileName(searchFile)
If (GetAttr(SearchFol) And vbDirectory) <> 0 Then
If Right(SearchFol, 1) <> "\" Then
SearchFol = SearchFol & "\"
End If
pathCount = 0
setPath = SearchFol
checkFlag = True
Do While checkFlag = True
checkName = Dir(setPath & "*.*", vbDirectory)
Do While checkName <> ""
If checkName <> "." And checkName <> ".." Then
If (GetAttr(setPath & checkName) And vbDirectory) <> 0 Then
pathCount = pathCount + 1
ReDim Preserve pathList(pathCount)
pathList(pathCount) = setPath & checkName
Else
If StrComp(checkName, sf, searchMode) = 0 Then
AllDirSearchFile = setPath & checkName
Exit Function
End If
End If
End If
checkName = Dir()
Loop
If pathCount = 0 Then
checkFlag = False
Else
setPath = pathList(pathCount) & "\"
pathCount = pathCount - 1
End If
Loop
Else
If StrComp(MakeFileName(SearchFol), sf, searchMode) = 0 Then
AllDirSearchFile = SearchFol
End If
End If
End Function
' フルパスからファイル名を取り出す
Public Function MakeFileName(fileName As String) As String
Dim z0 As Long
z0 = InStrRev(fileName, "\")
If z0 <> 0 Then
MakeFileName = Mid(fileName, z0 + 1)
Else
MakeFileName = fileName
End If
End Function
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaサブフォルダーをワイルドカードで取得したい 2 2022/11/15 08:04
- 法人税 電子帳簿保存法について 1 2022/04/07 11:17
- Google Drive 【Google ドライブ】どのフォルダに入ったの? 1 2022/10/21 10:08
- Windows 10 別ユーザーでログインした際、表示されないのソフトの探し方 1 2022/07/15 10:26
- Google Drive グーグルドライブ、勝手に共有されるのを防ぐ方法や気をつけること 2 2023/07/29 21:47
- Windows 10 USBにwindows10をいれて起動する方法 5 2022/04/14 14:29
- その他(ソフトウェア) 一太郎付属の”全件検索”ツールの不具合 3 2023/07/25 15:03
- Visual Basic(VBA) batにて、異なるフォルダの同名ファイルを参照し、文字列を判別。擬似配列で変数へ格納 3 2022/04/10 03:37
- Excel(エクセル) Excelを開くとエラーが出る 2 2022/10/03 16:13
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EaseUS Partition Master(無料...
-
ディレクトリって何ですか?
-
エクセル:一般的に何メガくら...
-
SDカードの保存先のファイル名
-
ブログ復元について教えて下さい
-
写真をネットにバックアップし...
-
防虫剤の匂いでバックアップCD...
-
iPhoneのファイル
-
Windows 10 のノートパソコンを...
-
PDFファイルを開きたいので...
-
iPhoneのバックアップについて...
-
PDFのページ数を調べたい
-
〜Googleフォトバックアップに...
-
BunBackupでバックアップが出来...
-
jw CADのファイルが見つか...
-
NASのバックアップ時
-
amazon で「16TB・SSD」\\9,999...
-
中古のパソコンを買ったので...
-
Androidスマホを使っていますが...
-
スマホを機種変更した場合MMSメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ディレクトリって何ですか?
-
用語『ルート直下』
-
電子帳簿保存法 弊社零細企業で...
-
EaseUS Partition Master(無料...
-
7-zipで解凍していたらCドライ...
-
Photoshopの起動画面に一時仮想...
-
PerfectDisk 7.0
-
iTunesの新しいパソコンへのデ...
-
VBA マクロ ファイル名を指...
-
DVDプレイヤーで再生できる形で...
-
エンハンスドCDの動画を保存したい
-
iTunes をcドライブにダウンロ...
-
エクセル:一般的に何メガくら...
-
iCloud+のオファーを使用という...
-
SDカードの保存先のファイル名
-
iPhoneのファイル
-
jw CADのファイルが見つか...
-
スマホを機種変更した場合MMSメ...
-
Windows 10 のノートパソコンを...
-
windows10で、デスクトップを定...
おすすめ情報