【Excel VBA】ブックの保存場所・ファイルパスを取得する(FullName/Path)

りゅう

こんにちは!りゅう(@ryupong_b)です。
今回は、ブックの保存場所 及び ファイルパスを取得する方法について解説します。

はじめに

今回は、ブックの保存場所 及び ファイルパスを取得する方法をご紹介します。
応用として、ブックのファイルパスを取得するだけでなく、新規のブックであるかどうかを判定する方法も解説します。
また、本記事ではサンプルコードを用いてコピペで使える実践的なコードもご紹介します。

この記事を読むメリット
  • ブックの保存場所を取得する方法が分かります。
  • ブックのファイルパスを取得する方法が分かります。
  • 取得の際の注意点などを詳しく解説します。
  • 新規ブックであるかを判定する方法が分かります。

前提

#プロパティ説明
1Pathブックの保存場所を取得する
2FullNameブックの保存場所 + ファイル名(ファイルパス)を取得する
ブックの保存場所/ファイルパス – 取得手段
めい

ブック名のみ取得する方法については、以下の記事を参照ください。

基本情報

Pathプロパティ

構文

‘ A1セルにこのブックの保存場所を出力する
Range(“A1”).Value = ThisWorkbook.Path

新規ブック(保存されていないブック)の場合は、「””(ブランク)」が返却されます。

FullNameプロパティ

構文

‘ A1セルにこのブックのファイルパスを出力する
Range(“A1”).Value = ThisWorkbook.FullName

新規ブック(保存されていないブック)の場合は、「Book1」等のブック名が返却されます。

サンプルコード

保存場所及びファイルパスをセルに出力する

サンプルコード
Public Sub outputBookInfo()

    ' A1セルに、このブックの保存場所を出力する
    Range("A1").Value = ThisWorkbook.Path

    ' B1セルに、アクティブブックのファイルパスを出力する
    Range("B1").Value = ActiveWorkbook.FullName
End Sub

全ブックの保存場所 及び ファイルパスをセルに出力する

サンプルコード
Public Sub outputBookInfoForAllBook()
    Dim loopCnt As Integer
    Dim wb As Workbook

    loopCnt = 1
    For Each wb In Workbooks

        ' 1列目に、このブックの保存場所を出力する
        Cells(loopCnt, 1).Value = wb.Path
    
        ' 1列目に、アクティブブックのファイルパスを出力する
        Cells(loopCnt, 2).Value = wb.FullName

        ' ループカウンタをインクリメント
        loopCnt = loopCnt + 1
    Next wb
End Sub

新規ブックであるかを判定する

サンプルコード
Public Sub checkNewBook()

    If ThisWorkbook.Path = "" Then

        ' このブックの保存場所がブランクの場合

        MsgBox "新規ブックです"
    End If
End Sub
りゅう

ThisWorkbookを判定対象のブックに変更してご使用ください。

めい

特定のブックを指定する為には、以下にてブックの参照方法を解説していますので、ご参考ください。

【共通化】新規ブックであるかを判定する

メインプロシージャ

サンプルコード
Public Sub mainCheckNewBook()

    ' このブックが新規ブックであるかを判定
    If subCheckNewBook(ThisWorkbook) Then

        MsgBox "新規ブックです。"
    End If
End Sub
めい

3行目について、判定対象のブックを引数に指定してください

サブプロシージャ

サンプルコード
Private Function subCheckNewBook(ByVal wb As Workbook) As Boolean

    ' 初期値をFalseに設定
    subCheckNewBook = False

    If wb.Path = "" Then

        ' ファイルの保存場所がブランクの場合

        ' Trueを返却
        subCheckNewBook = True
    End If
End Function

最後に

今回は、ブックの保存場所・ファイルパスを取得する方法について解説しました。

ブックの保存場所については、マクロ利用者によってそれぞれ違うため、本記事で紹介した取得方法を利用して汎用的なマクロを作り込んでみてください!

本記事が、皆さんのお力になれば幸いです!

オススメの書籍
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

大手外資系コンサルティングファーム勤務。ExcelVBA歴は8年。金融関係のプロジェクトにて約100万レコードを処理するマクロの開発実績あり。ExcelVBAの基礎・応用情報を発信中。

コメント

コメントする

CAPTCHA