VBAで指定フォルダを開く方法7選!

VBAで指定フォルダを開く方法7選!

VBAで指定フォルダを開きたいときはないでしょうか。

けど、そんな中で悩むことは、

・VBAで指定フォルダを開きたいが方法がよくわからない
・VBAで指定フォルダを開く方法がいくつかあるがどのように実装してよいかわからない

ですよね。

今回はそんなお悩みを解決する

・VBAで指定フォルダを開く方法7選

についてまとめます!

VBAで指定フォルダを開くイメージ

VBAで指定フォルダを開くイメージについて説明をします。

画面キャプチャしてクリップボードにビットマップ形式で画像を保存します。
VBAを実行すると、クリップボードの画像がPNGやJpegなどの画像ファイルに変換され、指定の箇所に保存されます。

キャプチャ画像を瞬間にファイル化できるので便利ですね!

それでは早速試してみましょう。

VBAとShell関数で指定フォルダを開く

VBAとShell関数で指定フォルダを開く方法について説明をします。
フォルダーを開くには、Shell関数を使用してexplorerコマンドを実行し、その後に開きたいフォルダーへのパスを指定します。

Shell関数

Shell関数は外部プログラムを実行する関数です。これにWindows エクスプローラーを指定する形となります。

Shell関数の構文

Shell関数の構文は以下の通りです。

Shell(<実行パスとパラメータ>)

今回は<実行パスとパラメータ>にWindows エクスプローラーと開きたいフォルダのパスをパラメータとして指定していきます。

VBAコード

Sub フォルダを開く1()
    Shell "explorer ""D:\test\フォルダ"""
End Sub

タカヒロ
タカヒロ
explorer.exeの表記でも実行できます。

Sub フォルダを開く1a()
    Shell "explorer.exe ""D:\test\フォルダ"""
End Sub

VBAの実装

VBAの実装方法については
VBAの実装手順
をご参照ください。

VBAを実行する

指定先のフォルダが開きましたね。

VBAとWScript.Shellの.Runで指定フォルダを開く

VBAとWScript.Shellの.Runで指定フォルダを開くことができます。

VBAコード

Sub フォルダを開く2()
    Dim objShell As Object
    'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")
    
    objShell.Run "D:\test\フォルダ"
End Sub

VBAとWScript.Shellの.RunでCMDコマンドから指定フォルダを開く

VBAとWScript.Shellの.RunでCMD(コマンド インタープリター Cmd.exe)コマンドから指定フォルダを開くことができます。

VBAコード

Sub フォルダを開く3()
    Dim objShell As Object
    Dim strCmd As String
    
   strCmd = "explorer ""D:\test\フォルダ"""

    'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")
        
    'コマンドを実行します。
    objShell.Run "cmd /c " & strCmd, 0, True

End Sub
Sub フォルダを開く3a()
    Dim objShell As Object
    Dim strCmd As String
    
   strCmd = "explorer.exe ""D:\test\フォルダ"""

    'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")
        
    'コマンドを実行します。
    objShell.Run "cmd /c " & strCmd, 0, True

End Sub

VBAとWScript.Shellの.RunでPowerShellコマンドから指定フォルダを開く

VBAとWScript.Shellの.RunでPowerShellコマンドを指定して指定フォルダを開くことが可能です。

Start-Processコマンドレットでフォルダを開く

PowerShell のStart-Processコマンドレットにパラメーターとして開きたいフォルダーへのパスを指定すればフォルダを開くことができます。

VBAコード

Sub フォルダを開く4()
    Dim objShell As Object
    Dim intResult As Integer
    Dim strCmd
    
    strCmd = "Start-Process ""D:\test\フォルダ"""
        
     'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")

    intResult = objShell.Run(Command:="powershell -ExecutionPolicy RemoteSigned -Command " & strCmd, WindowStyle:=1, WaitOnReturn:=True)

    '実行結果を返します。0:成功 1:失敗
    Debug.Print intResult

End Sub

Startコマンドレットでフォルダを開く

PowerShell のStart-Processコマンドレットの省略版Startコマンドレットでフォルダを開くことができます。

VBAコード

Sub フォルダを開く5()
    Dim objShell As Object
    Dim intResult As Integer
    Dim strCmd As String

    strCmd = "Start ""D:\test\フォルダ"""
        
     'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")

    intResult = objShell.Run(Command:="powershell -ExecutionPolicy RemoteSigned -Command " & strCmd, WindowStyle:=1, WaitOnReturn:=True)

    '実行結果を返します。0:成功 1:失敗
    Debug.Print intResult

End Sub

Invoke-Itemコマンドレットでフォルダを開く

PowerShell のInvoke-Itemコマンドレットにパラメーターとして開きたいフォルダーへのパスを指定すればフォルダを開くことができます。Invoke-Itemコマンドレットはファイルなどのアイテムを呼び出すように特別に設計されています。

VBAコード

Sub フォルダを開く6()
    Dim objShell As Object
    Dim intResult As Integer
    Dim strCmd As String

    strCmd = "Invoke-Item ""D:\test\フォルダ"""

     'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")

    intResult = objShell.Run(Command:="powershell -ExecutionPolicy RemoteSigned -Command " & strCmd, WindowStyle:=1, WaitOnReturn:=True)

    '実行結果を返します。0:成功 1:失敗
    Debug.Print intResult

End Sub

explorerでフォルダを開く

CMDと同様にPowershellもexplorerでフォルダを開くことができます。

Sub フォルダを開く7()
    Dim objShell As Object
    Dim intResult As Integer
    Dim strCmd As String

    strCmd = "explorer.exe ""D:\test\フォルダ"""

     'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")

    intResult = objShell.Run(Command:="powershell -ExecutionPolicy RemoteSigned -Command " & strCmd, WindowStyle:=1, WaitOnReturn:=True)

    '実行結果を返します。0:成功 1:失敗
    Debug.Print intResult

End Sub
Sub フォルダを開く7a()
    Dim objShell As Object
    Dim intResult As Integer
    Dim strCmd As String

    strCmd = "explorer ""D:\test\フォルダ"""

     'WshShellオブジェクトをセットします。
    Set objShell = CreateObject("WScript.Shell")

    intResult = objShell.Run(Command:="powershell -ExecutionPolicy RemoteSigned -Command " & strCmd, WindowStyle:=1, WaitOnReturn:=True)

    '実行結果を返します。0:成功 1:失敗
    Debug.Print intResult

End Sub

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・VBAで指定フォルダを開く方法7選

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です