【VBA】Excelブックの保存先フォルダをエクスプローラーで開くマクロ

目次

はじめに

「この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からフォルダを開くことができる。

このマクロを個人用マクロブックに保存し、クイックアクセスツールバーに登録しておけば、ファイルを探す手間が大幅に省け、日々の業務がよりスムーズになります。ぜひ、ご自身の環境に取り入れてみてください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次