プロが教える店舗&オフィスのセキュリティ対策術

excel VBA 部分一致の名前をパスに指定する方法 が知りたいです。

ワイルドカードやfilesystemobject等を使って、部分一致のフォルダ名をパスに埋め込み、フォルダの場所を開きたいです。

Dim item As String
item = Range("I11").Value
Dim key As String
key = Dir("*item*", vbDirectory)
Dim targ As String
targ = "C:\Users\Desktop\test\" & key
Shell "C:\Windows\Explorer.exe " & targ, vbNormalFocus

部分一致の出来るものとしてワイルドカード等調べてみたのですが、よくわからず。
上記:デスクトップ上「test」フォルダ内にある「”I11セル”に入力された文字列の入ったフォルダ名」のフォルダを開きたかった感じです。うまくいきません。

良い方法ありますでしょうか。
VBA初心者の為、わからない所が多く。
教えて頂けますと嬉しいです。

何卒宜しくお願い致します。

質問者からの補足コメント

  • 回答ありがとうございます。
    すみません。上記試してみたのですが動作せずで、何かもっと試してみれるようなものあったりしますでしょうか。

    No.1の回答に寄せられた補足コメントです。 補足日時:2021/10/21 09:39

A 回答 (2件)

おはようございます。



No.1と、殆ど同じ様な感じですが、

Sub sample()
Dim xFld As String
Const xParent As String = "C:\test\"
xFld = Dir(xParent & range("I11").value & "*", vbDirectory)
If xFld <> "" Then
Shell "C:\Windows\Explorer.exe " & xParent & xFld, vbNormalFocus
else
msgbox xParent & xFld & ":該当するフォルダが見つかりません。"
End If
End Sub

プログラムの内容は、下記を参考にしています。
https://detail.chiebukuro.yahoo.co.jp/qa/questio …

一応、見付からなかった時に、メッセージを表示する様にしています。
    • good
    • 1
この回答へのお礼

ありがとうございます!出来ました!

お礼日時:2021/10/21 13:59

> デスクトップ上「test」フォルダ内にある「”I11セル”に入力された文字列の入ったフォルダ名」のフォルダを開きたかった



だと、
item = Range("I11").Value
targ= Dir("C:\Users\Desktop\test\*" & item & "*", vbDirectory)
Shell "~

とかでは。
動作確認してないですが。


> VBA初心者の為、わからない所が多く。

文字列の操作
Dir関数の動作
なんかを勉強でしょうか。
この回答への補足あり
    • good
    • 1
この回答へのお礼

ありがとうございました。

お礼日時:2021/10/21 13:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A