こんにちは!りゅう(@ryupong_b)です。
今回は、ブックの保存場所 及び ファイルパスを取得する方法について解説します。
今回は、ブックの保存場所 及び ファイルパスを取得する方法をご紹介します。
応用として、ブックのファイルパスを取得するだけでなく、新規のブックであるかどうかを判定する方法も解説します。
また、本記事ではサンプルコードを用いてコピペで使える実践的なコードもご紹介します。
- ブックの保存場所を取得する方法が分かります。
- ブックのファイルパスを取得する方法が分かります。
- 取得の際の注意点などを詳しく解説します。
- 新規ブックであるかを判定する方法が分かります。
前提
# | プロパティ | 説明 |
---|---|---|
1 | Path | ブックの保存場所を取得する |
2 | FullName | ブックの保存場所 + ファイル名(ファイルパス)を取得する |
ブック名のみ取得する方法については、以下の記事を参照ください。
基本情報
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
最後に
今回は、ブックの保存場所・ファイルパスを取得する方法について解説しました。
ブックの保存場所については、マクロ利用者によってそれぞれ違うため、本記事で紹介した取得方法を利用して汎用的なマクロを作り込んでみてください!
本記事が、皆さんのお力になれば幸いです!
コメント