Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
ファイルを選択した状態でフォルダを開く方法
投稿日時: 22/11/16 18:45:21
投稿者: ひろと

現状、特定のシートにエクセルファイルのフルパスの一覧を表示させており、各セルを右クリックしたときに、そのファイルが保存されているフォルダを表示させるように以下のようなマクロを組んでいます。
このマクロの☆の部分を調整して、ファイルが選択された状態でフォルダを開きたく、皆様の知恵をお借りしたいです。
よろしくお願いします。
 
○シートの状態:A1セル;D:\aaa\AAA.xlsm、A2セル;D:\bbb\BBB.xlsm、…
○マクロの詳細:例えばA2セルを右クリックするとD:\bbb\BBBフォルダが「ファイル無選択状態」で開かれる。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'フォルダを開く
 フォルダ = Target.Value
 If Dir(フォルダ, vbDirectory) = "" Then
   MsgBox "フォルダがありません"
   Exit Sub
  End If
  Dim fso As Object
   Set fso = CreateObject("Scripting.FileSystemObject")
  CreateObject("Shell.Application").Open (fso.GetParentFolderName(フォルダ))
  For Each ファイル In fso.GetFolder(fso.GetParentFolderName(フォルダ)).Files
   If ファイル.Name = Dir(フォルダ) Then
    '''''☆:ファイル.Activateやファイル.Selectでは上手くいかない
    Exit For
   End If
  Next ファイル
 On Error GoTo 0
End Sub

回答
投稿日時: 22/11/17 08:48:45
投稿者: Suzu

Exploror の起動オプションを指定し起動する方法です。
 
指定したファイルをエクスプローラーで開いて選択するVBAマクロ
https://www.ka-net.org/blog/?p=9180
 
特定のファイルを選択した状態でフォルダを開く
http://www.alato.ne.jp/kazu-/vb/tip23.htm
 
あくまで、Exploror の場合です。
既定のファイラーが、Exploror以外の場合には使えません。

投稿日時: 22/11/17 09:11:49
投稿者: ひろと

Suzu様
ご回答ありがとうございました。
 
既定のファイラーExplororから変更していないので、ご紹介頂いたページを見ながら、「CreateObject〜Next ファイル」までを
  Shell "EXPLORER.EXE /select,""" & フォルダ & """", vbNormalFocus
にすると、やりたいことが出来ました。
ありがとうございました!解決しました。
もっと上手に検索できるようにならないとな…と感じました。

投稿日時: 22/11/17 09:13:04
投稿者: ひろと

解決済みにしていなかったので追記