構文
Shell (pathname, [windowstyle])
pathname・・・・・Explorerを指定します。C:\Windows\Explorer.exe
windowstyle・・・・開きたいフォルダをフルパスで指定します。
windowstyle・・・・開きたいフォルダをフルパスで指定します。
マクロで指定したフォルダを開きます。Shell関数を利用します。
Shell関数は他のプログラムを起動したりする事が出来る関数です。
今回はフォルダのみ(エクスプローラーのみ)開きます。
windowstyleの定数
| 定数 | 画面サイズ | 最前面表示 |
| vbHide | 表示しない | 表示しない |
| vbNormalFocus | 通常サイズで表示 | 最前面に表示 |
| vbMinimizedFocus | 最小サイズで表示 | 最前面に表示 |
| vbMaximizedFocus | 最大サイズで表示 | 最前面に表示 |
| vbNormalNoFocus | 通常サイズで表示 | 最前面に表示しない |
| vbMinimizedNoFocus | 最小サイズで表示 | 最前面に表示しない |
指定したフォルダを開くサンプルコード
Public Sub sample()
'■通常サイズで表示
Shell "C:\Windows\Explorer.exe " & "C:\vba", vbNormalFocus
'■最大サイズで表示
Shell "C:\Windows\Explorer.exe " & "C:\vba", vbMaximizedFocus
'■フォルダ存在しなければ、マイドキュメントが起動します
Shell "C:\Windows\Explorer.exe " & "C:\sample"
'■フォルダ存在しない場合のエラー回避
Dim sPath As String
sPath = "C:\vba"
If Dir(sPath, vbDirectory) & <> "" Then
Shell "C:\Windows\Explorer.exe" & sPath, vbNormalFocus
Else
Debug.Print sPath & "が存在しません"
End If
End Sub
注意点
- サブフォルダも含めて表示するわけではありません。その場合、FileSystemObjectを使用します。
- “C:\Windows\Explorer.exe “の最後の半角スペースは必須です。
半角スペースをなくすと実行時エラー ’53’:ファイルが見つかりません。 - ネットワークフォルダを開くことも可能です。
- Shell関数を使わずフォルダを開くことも可能です。
- ファイルダイアログを表示し、ユーザーに選択してもらう場合は下記。
単一ファイル/複数ファイル/フォルダ



コメント