![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
下記のマクロを実行すると指定フォルダ内にワイルドカードで指定した
フォルダの有無を検索し、メッセージが表示されます。
このマクロを
ワイルドカードの数字の部分を
例えば「12345678-6_」
マクロを設定しているブックのシート名「番号」のセル値「C1:C6」に記載のある番号
に変更して該当フォルダの有無を検索できるように変更する方法を教えてください。
該当フォルダが複数あり場合は、メッセージボックスにその旨を表示出来るようにしたいのですが、
よろしくお願いいたします。
一つの例ですが
画像のパターンですと
メッセージボックスに「12345678-6_北海 太郎」と「123456789-1_北海 花子」の2つを表示です。
マクロ
Sub フォルダ検索()
Dim 検索フォルダパス As String
検索フォルダパス = "C:\Users\160931\Desktop\10月16日\テスト"
Dim 該当フォルダパス As String
Dim dir結果値 As String
dir結果値 = Dir(検索フォルダパス & "\12345678-6_*", vbDirectory)
Do While dir結果値 <> ""
Dim dir結果パス As String
dir結果パス = 検索フォルダパス & "\" & dir結果値
If GetAttr(dir結果パス) And vbDirectory Then
該当フォルダパス = dir結果パス
Exit Do
End If
dir結果値 = Dir()
Loop
If 該当フォルダパス <> "" Then
MsgBox "該当フォルダのパス:" & 該当フォルダパス
End If
End Sub
以上となります。
よろしくお願いいたします。
![「エクセルのマクロについて教えてください。」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/a/543114798_6530dab7de237/M.png)
No.2ベストアンサー
- 回答日時:
>「123456789-1_北海 花子」のみをメッセージボックスに表示出来る方法はありますでしょうか。
SubFoldersのSubFolder代入している fol As Object のNameプロパティでフォルダ名が取得できます
該当変更箇所
After
If AnsMsg = "" Then
AnsMsg = fol.Name
Else
AnsMsg = AnsMsg & vbCrLf & fol.Name
End If
No.1
- 回答日時:
ワイルドカードで検索との事で 該当するすべてで良いのでしょうか
フォルダの検索・・・Dirでも良いですが 先の質問で使用されていた
Scripting.FileSystemObjectのGetFolder(検索フォルダパス).SubFoldersを使用して 一例です
Sub フォルダ検索()
Dim 検索フォルダパス As String
検索フォルダパス = "C:\Users\160931\Desktop\10月16日\テスト"
Dim AnsMsg As String
Dim rng As Range
Set rng = Range("C1:C6")
Dim fso As Object, fol As Object
Set fso = CreateObject("Scripting.FileSystemObject")
For Each r In rng
If r.Value <> "" Then
For Each fol In fso.GetFolder(検索フォルダパス).SubFolders
If fol Like 検索フォルダパス & "\" & r.Value & "*" Then
If AnsMsg = "" Then
AnsMsg = fol
Else
AnsMsg = AnsMsg & vbCrLf & fol
End If
End If
Next
End If
Next
If AnsMsg <> "" Then
MsgBox "該当フォルダのパス:" & vbCrLf & AnsMsg
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
- Visual Basic(VBA) EXCEL VBA シート貼り付け 3 2021/11/15 12:33
- Visual Basic(VBA) EXCLE VBA シートクリックしたら該当シートコピー 1 2021/11/11 16:37
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Excel(エクセル) excel VBA 部分一致の名前をパスに指定する方法 2 2021/10/20 17:18
- Visual Basic(VBA) EXCEL VBA シート比較し〇×判定 1 2021/11/19 11:49
- Excel(エクセル) excel VBA Dirにて検索したフォルダのパスを取得してハイパーリンクを貼る方法 5 2021/10/21 16:19
- Excel(エクセル) excel VBA フォルダ内のサブフォルダを検索してハイパーリンクを貼りたい 1 2021/10/25 11:59
- Visual Basic(VBA) VBA Find でオートメーションエラー(エラー440)が出ました 1 2021/11/09 21:22
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
エクセル VBAでの転記の方法について
Visual Basic(VBA)
-
エクセルのマクロについて教えてください。
Visual Basic(VBA)
-
VBA
Visual Basic(VBA)
-
-
4
エクセル CSVファイルについて
Excel(エクセル)
-
5
Excelの各シートを色ごとで分類して値転記するマクロの作り方を教えて下さい。
Visual Basic(VBA)
-
6
VB.NETでフォームアクティブのイベントハンドラが起動されない
Visual Basic(VBA)
-
7
Excel マクロについて
Visual Basic(VBA)
-
8
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
9
VBAについて 集計シートの『A5』にデータシート『I1』からコピーした「2023/10/1」がはい
Visual Basic(VBA)
-
10
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
11
特定文字を入ってるCSVの特定の列を特定のexcelシートに取り込みたいです
Visual Basic(VBA)
-
12
Excelセルに入力された文字の色を変える方法を教えてください
Visual Basic(VBA)
-
13
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
14
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
15
Cellsのコードが打てません
Visual Basic(VBA)
-
16
マクロについて教えてください。 下記のマクロは以前教えて頂いたマクロです。 マクロを実行すると 指定
Visual Basic(VBA)
-
17
エクセルのマクロ
Excel(エクセル)
-
18
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
19
エクセルVBAでデータ転記
Visual Basic(VBA)
-
20
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
多量のファイルをフォルダに自...
-
【マクロ】ファイル名の日付に...
-
Excelのハイパーリンクについて...
-
VBA 最新のフォルダ取得
-
exeと同じ階層にフォルダを配置...
-
バッチファイルが保存されてい...
-
Excelで指定したフォルダに保存...
-
あるフォルダの中にあるファイ...
-
マクロについて教えてください ...
-
あるフォルダーのファイルを違...
-
サーバ内のフォルダ名と各フォ...
-
フォルダ内のPDFファイル名を変...
-
Access VBA で フォルダ権限...
-
フォームを最前面に表示したい...
-
ExcelのVBAでの複数階層からの...
-
C ファイル出力で、フォルダが...
-
PSPICE 9.1 STUDENT VERSION ...
-
フォルダを開いて、閉じるのプ...
-
VB6でCSVファイルにパスワード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
ファイル名と同名のフォルダを...
-
VBA 最新のフォルダ取得
-
【マクロ】ファイル名の日付に...
-
windowsでテキストファイルの各...
-
デスクトップの画像をhtmlに表...
-
Access VBA で フォルダ権限...
-
フォルダ内のPDFファイル名を変...
-
パス名に2バイト文字(マルチバ...
-
多量のファイルをフォルダに自...
-
Excelで指定したフォルダに保存...
-
会社のネットワーク上のファイ...
-
ディレクトリ名変更してコピー...
-
VBA フォルダ名に特定の文字を...
-
エクセルマクロで指定フォルダ...
-
保存先のフォルダ名を指定した...
-
あるフォルダの中にあるファイ...
-
ExcelのVBAでフォルダ指定がで...
-
エクセルのマクロについて教え...
-
Excel VBA で フォルダ名の一部...
おすすめ情報
おはようございます。
詳しいコードをありがとうございました。
一つお願いがあります。
教えて頂いた、貴者のコードを実行すると
メッセージボックスに
該当フォルダパスが全て表示されますが、
出来れば、C:¥~テスト¥までを省いて、「12345678-6_北海 太郎」「123456789-1_北海 花子」のみをメッセージボックスに表示出来る方法はありますでしょうか。
何度も申し訳ありません。
よろしくお願いいたします。