【VBA】実行中のブックのパスやファイル名を取得する

実行中のブックのパスやファイル名は
 ・ThisWorkbook
により取得できます!

PR

前提

ここでは例として、
 ・デスクトップ配下のファイル「sampl_001.xlsm」
にVBAコードを記述して実行します。

デスクトップ配下のファイル「sampl_001.xlsm」
デスクトップ配下のファイル「sampl_001.xlsm」
PR

VBAコード

Sub sample()
    
    '実行中のブックのパスやファイル名を取得
    MsgBox "実行中のブックのパス:" & ThisWorkbook.Path & vbCrLf & _
           "実行中のブックのファイル名:" & ThisWorkbook.Name
    
End Sub

「ThisWorkbook」により、「実行中のブックを表すWorkbookオブジェクト」を取得します。

「Workbook オブジェクト」の「Path」プロパティで、「パス」を取得します。

「Workbook オブジェクト」の「Name」プロパティで、「ファイル名」を取得します。

PR

実行結果

実行中のブックのパスやファイル名を取得できました。

実行結果
実行結果
PR

参考①(ThisWorkbookについて)

「ThisWorkbook」は
 ・「Applicationオブジェクト」の「ThisWorkbook」プロパティを
 ・省略した記述方法
です。
※VBAには省略してもいいモノがいくつかあります。ThisWorkbookはその1つです。

よって以下のように
 ・「ThisWorkbook」の前に「Application.」を記載するのが正式な記述方法
です。

Sub sample()
    
    '実行中のブックのパスやファイル名を取得
    MsgBox "実行中のブックのパス:" & Application.ThisWorkbook.Path & vbCrLf & _
           "実行中のブックのファイル名:" & Application.ThisWorkbook.Name
    
End Sub


ただ
 ・「Application.」を記述しないと可読性が低下する等は無い
ため、省略した記述方法で良いと考えます。
※多くの人も省略しています。正式な記述方法をしている人を私は見たことありません。
※むしろ省略したほうがスッキリして良いと考えます。

PR

参考②

「ThisWorkbook」の詳細は、公式サイトをご確認ください。

PR

参考③

指定したパスのファイル名を取得することもできます。

詳細は以下の記事をご確認ください。