はじめに
「このExcelファイルが保存されているフォルダを開いて、関連ファイルも一緒に見たい」 作業をしていると、このように感じることが頻繁にありますよね。
通常は「ファイル」タブから「情報」を選び、表示されたパスをクリックする…という手順が必要ですが、この操作をより素早く、ボタン一つで実行できると便利です。
VBAマクロを使えば、「今開いているブックの保存場所を、一発でエクスプローラーで開く」という動作を簡単に実現できます。この記事では、そのためのシンプルで実用的なコードをご紹介します。
保存先フォルダを開くVBAサンプルコード
このマクロは、まずブックが保存済みかどうかをパスの有無で判定し、保存済みであれば WScript.Shell オブジェクトを使ってエクスプローラーを起動します。
完成コード
' 現在のブックが保存されているフォルダをエクスプローラーで開く
Sub OpenContainingFolder()
    '== 変数を定義します ==
    Dim workbookPath As String
    
    ' 現在のブックのパスを取得
    workbookPath = ActiveWorkbook.Path
    
    '== ブックが保存されているかパスの有無で判定します ==
    If workbookPath = "" Then
        ' 保存されていない場合
        MsgBox "このブックはまだ一度も保存されていません。", vbExclamation, "エラー"
    Else
        ' 保存されている場合、WScript.Shellオブジェクトでフォルダを開く
        CreateObject("WScript.Shell").Run workbookPath
    End If
End Sub
コードの解説
workbookPath = ActiveWorkbook.Path
ActiveWorkbook.Path プロパティを使って、現在アクティブになっているExcelブックのフォルダパス(例: C:\Users\Username\Documents)を取得し、変数 workbookPath に格納しています。
If workbookPath = "" Then
ActiveWorkbook.Path プロパティは、ブックが一度も保存されていない場合、空の文字列("")を返します。この特性を利用して、ブックが保存済みかどうかを判定しています。もしパスが空であれば、メッセージボックスでユーザーに通知し、処理を終了します。
CreateObject("WScript.Shell").Run workbookPath
この一行が、実際にフォルダを開く処理を行っています。
- CreateObject("WScript.Shell"): VBAからWindowsの機能(シェル機能)を操作するためのオブジェクトを生成しています。
- .Run workbookPath:- Runメソッドは、指定されたプログラムやファイル、フォルダパスを実行(開く)する命令です。ここでは、先ほど取得した- workbookPathを渡すことで、そのフォルダをエクスプローラーで開いています。
まとめ
今回は、現在開いているブックの保存場所をエクスプローラーで瞬時に開く、便利なVBAマクロをご紹介しました。
- ActiveWorkbook.Pathでブックのフォルダパスを取得できる。
- パスが ""かどうかで、ブックが保存済みかを判定できる。
- WScript.Shellオブジェクトを使えば、VBAからフォルダを開くことができる。
このマクロを個人用マクロブックに保存し、クイックアクセスツールバーに登録しておけば、ファイルを探す手間が大幅に省け、日々の業務がよりスムーズになります。ぜひ、ご自身の環境に取り入れてみてください。

 
			 
			 
			 
			 
			 
			 
			