トップ > 備忘録 > ブックパス・その他パスの取得

ブックパス・その他パスの取得2012.09.27   [更新日]2024.11.28

ブックパスや、Excelアプリケーションに関する様々なパス取得サンプルコードとメモです。

ポイント

・Excel既定のフォルダのパス取得
・アドインライブラリフォルダ(全ユーザー、ログインユーザー)のパス取得
・ブック名の取得
・ブックパスの取得
・ファイル区切り文字(パスセパレータ)の取得


【お薦め】マクロ・プロシージャを管理する無料のツール!
 Excelマクロ管理ツール

サンプルコード

各種パスの取得

'-----------------------------------------------------------------
' 列挙型  ※ 列挙型は標準モジュールの宣言セクションに記載します
'-----------------------------------------------------------------
' アプリケーション各種パス
Enum enmApplicationPath
    Excel既定のフォルダ                ' Excel既定フォルダのパス
    Excelのパス                        ' Excelのパス
    Excel起動フォルダ                  ' Excel起動フォルダのパス
    アドインライブラリフォルダ         ' アドインライブラリフォルダ(全ユーザー)
    アドインユーザーライブラリフォルダ ' アドインライブラリフォルダ(ログインユーザー)
End Enum

' ブック各種パス
Enum enmWorkbookPath
    ブック名                           ' ブックの名前
    ブックパス                         ' ブックのパス
    ブックフルパス                     ' ブックのフルパス(ブックパス+ブック名)
End Enum

'----------------------------------------------------------------- ' 各種アプリケーションパス・ブックパスを取得 '----------------------------------------------------------------- ' '[作成日]2012.09.27 [更新日]2024.11.28 ' https://excel.syogyoumujou.com/memorandum/get_path.html '----------------------------------------------------------------- Sub 各種パスを取得する使用例() '--------------------------------------- ' アプリケーションパス '--------------------------------------- Dim strApplicationPath As String '《各種アプリケーションパス取得》 ' ・ 引数1 : パス番号 ※列挙型 enmApplicationPath strApplicationPath = getAnyApplicationPath(Excel起動フォルダ) MsgBox strApplicationPath, vbInformation, "アプリケーションパス" '--------------------------------------- ' ブックパス '--------------------------------------- Dim strWorkbookPath As String '《ブックパス取得》 ' ・ 引数1 : パス番号 ※列挙型 enmWorkbookPath ' ・ 引数2 : 対象ブック(省略するとアクティブブックが対象) strWorkbookPath = getAnyWorkbookPath(ブックフルパス) MsgBox strWorkbookPath, vbInformation, "ブックパス" '--------------------------------------- ' フォルダ区切り文字 '--------------------------------------- MsgBox Application.PathSeparator, vbInformation, "ファイル区切り文字" End Sub
'----------------------------------------------------------------- ' 各種アプリケーションパス取得 '----------------------------------------------------------------- '[引数] ' NumberOfPath:パス番号(列挙型 enmApplicationPath から選択) '[戻り値] ' 引数のパス番号に対応したパス '[作成日]2012.09.27 [更新日]2024.11.28 ' https://excel.syogyoumujou.com/memorandum/get_path.html '----------------------------------------------------------------- Function getAnyApplicationPath(ByVal NumberOfPath As enmApplicationPath) As String With Excel.Application Select Case NumberOfPath Case Excel既定のフォルダ getAnyApplicationPath = .DefaultFilePath Case Excelのパス getAnyApplicationPath = .Path Case Excel起動フォルダ getAnyApplicationPath = .StartupPath Case アドインライブラリフォルダ getAnyApplicationPath = .LibraryPath Case アドインユーザーライブラリフォルダ getAnyApplicationPath = .UserLibraryPath End Select End With End Function
'----------------------------------------------------------------- ' ブックパス取得 '----------------------------------------------------------------- '[引数] ' NumberOfPath:パス番号(列挙型 enmWorkbookPath から選択) ' bokTarget :取得対象のワークブックオブジェクト(省略可能) ' 省略した場合はアクティブブックが設定される '[戻り値] ' 引数のパス番号に対応したパス '[作成日]2012.09.27 [更新日]2024.11.28 ' https://excel.syogyoumujou.com/memorandum/get_path.html '----------------------------------------------------------------- Function getAnyWorkbookPath(ByVal NumberOfPath As enmWorkbookPath, _ Optional ByVal bokTarget As Workbook) As String If bokTarget Is Nothing Then Set bokTarget = ActiveWorkbook Select Case NumberOfPath Case ブック名 getAnyWorkbookPath = bokTarget.Name Case ブックパス getAnyWorkbookPath = bokTarget.Path Case ブックフルパス getAnyWorkbookPath = bokTarget.FullName End Select End Function

VBAコードをカラーで印刷・Web掲載するためのツールはこちら


メモ

Application.DefaultFilePathプロパティ

Excel起動時にExcelが使うデフォルトフォルダが、DefaultFilePathである。
値の取得・設定が可能。この設定の変更はExcelを再起動しても保持される。
手動でも設定可能。Excel2010の場合:「ファイル」→「オプション」→「保存」→「既定のファイル場所」
コードでの設定例:Application.DefaultFilePath = ThisWorkbook.Path

Application.Pathプロパティ

Excelのインストールされているフォルダの絶対パスを返す。パス末尾にパスセパレータは含まれない。

Application.StartupPathプロパティ

このプロパティで取得できるフォルダパスは、XLSTARTフォルダである。このフォルダに保存したファイルは、Excel起動時に自動で読み込まれる。テンプレートやマクロファイルの置き場所として使用。パス末尾にパスセパレータは含まれない。

Application.LibraryPathプロパティ

このプロパティは、そのコンピュータを利用する全ユーザーが、共通で使用できるアドインライブラリフォルダのパスを取得できる。パス末尾にパスセパレータは含まれない。

Application.UserLibraryPathプロパティ

このプロパティは、そのコンピュータにログインしたユーザーが使用できる、アドインライブラリフォルダのパスを取得できる。パス末尾にパスセパレータは含まれない。

Workbook.Nameプロパティ

該当ブックの名前を取得するプロパティ。ブックが保存されていれば、拡張子も取得する。新規ブックではブック名のみ取得。

Workbook.Pathプロパティ

該当ブックの保存されているフォルダを取得するプロパティ。パス末尾にパスセパレータは含まれない。
ブックを保存していない場合や、Application.Quitを実行した後は空の文字列が返る。

Workbook.FullPathプロパティ

該当ブックの保存されているフォルダ+ブック名を併せた形で取得するプロパティ。

Application.PathSeparatorプロパティ

フォルダやファイルを接続するパスセパレータを取得できる。Windowsの日本版では「\」であるが、Macや英語版では異なる。


ページトップへ戻る
Copyright(C) 2009- 坂江 保 All Rights Reserved.