ブックパス・その他パスの取得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や英語版では異なる。