カレントフォルダや絶対パスを取得
ブックの絶対パスやカレントフォルダを取得する

カレントフォルダと絶対パスを取得する 3行マクロ 63回
ブックのカレントフォルダや絶対パスを取得する
Excelが利用する規定のカレントフォルダ(規定のローカルファイルの保存場所)を取得したい時に使うマクロです。
(サンプルファイルは、こちらから 3行マクロ63回サンプルデータ)
Excelバージョン:Excel2016201320102007
ブックのカレントフォルダとは
通常ファイルを開くときは、Excelは規定のフォルダを開きます。これがカレントフォルダです。
呼び方はExcelのバージョンによって変わっています。Excel2003まではカレントフォルダ名、Excel2007,Excel2010では、規定のファイルの場所と呼び、
Excel2013以降では、規定のローカルファイルの保存場所と呼ぶようになりました。
このフォルダは、使いやすいようにユーザーが
Excelのオプションの
保存にある
規定のローカルファイルの保存場所に使いたいフォルダを入力することで変更することができます。
下図では、カレントフォルダをオプションでDドライブ直下のexcel_site-sampleに変更しています。

ブックのカレントフォルダを取得
マクロでカレントフォルダ(規定のローカルファイルの保存場所)を取得したり設定したい時に使うのは、DefaultFilePath プロパティです。
DefaultFilePath プロパティは、カレントフォルダを変更したり、フォルダ名を取得できます。
以下のコードを実行すると、カレントフォルダを取得しメッセージボックスに表示する事ができます。
Sub ブックのカレントフォルダ名()
MsgBox Application.DefaultFilePath
End Sub

カレントドライブのパスをA1セルに入力するには、
Sub ブックのカレントフォルダ名2()
Range("A1").Value = Application.DefaultFilePath
End Sub
ブックのカレントフォルダを変更する
オプションを開いて設定することなく、カレントフォルダ(規定のローカルファイルの保存場所)を変更できます。
以下のコードでは、カレントフォルダを
D:\excel_site-sample\Excel 2013に変更し、メッセージボックスに表示します。
Sub カレントフォルダを変更()
Application.DefaultFilePath = "D:\excel_site-sample\Excel 2013"
MsgBox Application.DefaultFilePath
End Subカレントフォルダを変更しました。A1セルには、変更前のカレントフォルダのパスが入力されています。
ブックの名前までの絶対パスを取得する
今度は、作業中のブックパスとファイル名を取得しましょう。作業中のブックは1度保存されているものとします。
使うのは、Workbookオブジェクトの
FullName プロパティです。
Sub ブックのフルネーム()
MsgBox ActiveWorkbook.FullName
End Sub
マクロを実行するとパスを含む名前を表示します。

作業中のブックのパスだけを取得したいのなら、Workbookオブジェクトの
Path プロパティを使う事ができます。
Sub ブックのパス()
MsgBox Application.ThisWorkbook.Path
End Sub
Sub ブックのパス2()
MsgBox Application.ActiveWorkbook.Path
End Sub