ブックパス・その他パスの取得2012.09.27
ブックパスや、Excelアプリケーションに関する様々なパス取得サンプルコードとメモです。
ポイント
・Excel既定のフォルダのパス取得
・アドインライブラリフォルダ(全ユーザー、ログインユーザー)のパス取得
・ブック名の取得
・ブックパスの取得
・パスセパレータ
Excelマクロ管理ツール
サンプルコード
各種パスの取得
Const conDFP As Long = 0 'Excel既定フォルダのパス Const conAP As Long = 1 'Excelのパス Const conASP As Long = 2 'Excel起動フォルダのパス Const conLP As Long = 3 'アドインライブラリフォルダ(全ユーザー) Const conULP As Long = 4 'アドインライブラリフォルダ(ログインユーザー) Const conBN As Long = 5 'ブックの名前 Const conBP As Long = 6 'ブックのパス Const conBFN As Long = 7 'ブックのフルパス(ブックパス+ブック名)
Sub Get_Path_Sample() MsgBox Get_Path(conBFN, ActiveWorkbook) 'MsgBox Application.PathSeparator 'パスセパレータの表示 End Sub
Function Get_Path(ByVal Ptype As Long, Optional WB As Workbook) As String With Excel.Application If WB Is Nothing Then Set WB = .ThisWorkbook Select Case Ptype Case 0: Get_Path = .DefaultFilePath Case 1: Get_Path = .Path Case 2: Get_Path = .StartupPath Case 3: Get_Path = .LibraryPath Case 4: Get_Path = .UserLibraryPath Case 5: Get_Path = WB.Name Case 6: Get_Path = WB.Path Case 7: Get_Path = WB.FullName End Select If Len(Get_Path) = 0 Then Get_Path = WB.Path End With End Function
メモ
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や英語版では異なる。