カレントフォルダや絶対パスを取得

リンクユニット


カレントフォルダと絶対パスを取得する 3行マクロ 63回

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

Excelが利用する規定のカレントフォルダ(規定のローカルファイルの保存場所)を取得したい時に使うマクロです。

(サンプルファイルは、こちらから 3行マクロ63回サンプルデータ

ブックのカレントフォルダとは

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

ブックのカレントフォルダを取得

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

ブックの絶対パスを取得マクロ2
カレントドライブのパスを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セルには、変更前のカレントフォルダのパスが入力されています。
ブックの絶対パスを取得マクロ3

ブックの名前までの絶対パスを取得する

今度は、作業中のブックパスとファイル名を取得しましょう。作業中のブックは1度保存されているものとします。 使うのは、WorkbookオブジェクトのFullName プロパティです。
Sub ブックのフルネーム()
    MsgBox ActiveWorkbook.FullName
End Sub
マクロを実行するとパスを含む名前を表示します。
ブックの絶対パスを取得マクロ3
作業中のブックのパスだけを取得したいのなら、WorkbookオブジェクトのPath プロパティを使う事ができます。
Sub ブックのパス()
    MsgBox Application.ThisWorkbook.Path
End Sub
Sub ブックのパス2()
    MsgBox Application.ActiveWorkbook.Path
End Sub
おすすめコンテンツ