目次
良く使われる方法
「url.dll」を使う方法
id = Shell("rundll32.exe url.dll,FileProtocolHandler " & strFileName, vbNormalFocus)
返値はハンドルIDです。
この方法では下記のようなメリットがあります。
- ファイルが存在しなくてもエラーとならない
- ファイル名に半角スペースが含まれていてもエラーとならずに正常に開く(引用符不要だが囲んでも問題ない)
特にデメリットも見当たらないため一番おススメ出来る方法です。
「WScript.Shell」を使う方法
ret = WSH.Run(Chr(34) & strFileName & Chr(34), 3)
返値はエラーコード(正常の場合は0)です。
この方法では下記のようなデメリットがあります。
- ファイルが存在しない場合はエラーとなる
- ファイル名に半角スペースが含まれるとエラーとなる(二重引用符で囲むことで回避可能)
上記のようなデメリットがあるため、積極的に使う必要はないように思われます。
その他の方法
使用頻度は低いと思われますが、参考までに他の方法を記載しておきます。
batファイル経由で開く(Shell関数でbatファイルを開く)
ShellオブジェクトのShellExecuteメソッドを使う
Dim sh As Object
Set sh = CreateObject("Shell.Application")
sh.ShellExecute strFile
「Microsoft Shell Controls And Automation」を参照設定しているなら下記のように書けます。
Dim sh As New Shell32.Shell
sh.ShellExecute strFile
WorkBookオブジェクトのFollowHyperlinkメソッドを使う(Excel限定)
ThisWorkbook.FollowHyperlink strFileName
フォルダをエクスプローラーで開く方法
今回ご紹介した、「url.dll」を使う方法、「WScript.Shell」を使う方法で、ファイルではなくフォルダを引数に渡すと、エクスプローラーでフォルダが開きます。
まとめ
今回紹介した方法の中では、『「url.dll」を使う方法』が一番使い勝手が良さそうです。
コメント