VBAで指定フォルダを開きたいときはないでしょうか。
けど、そんな中で悩むことは、
・VBAで指定フォルダを開く方法がいくつかあるがどのように実装してよいかわからない
ですよね。
今回はそんなお悩みを解決する
についてまとめます!
もくじ
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
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」をクリックし実行したいマクロを選択し、「実行」をクリックします。
②処理がされたことが確認できれば完了です。
さいごに
いかがでしょうか。
今回は、
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す