フルパスからファイル名、パスを取得する
2016/03/23
フルパスからファイル名のみを取得する
フルパスからファイル名を取得するには、Dir 関数 が便利です。ただし、対象となるファイルが存在しない場合は、取得することができません。
その場合は、まず、InStrRev 関数 を使ってフルパスの最後の「\」の位置を取得します。最後の「\」の後が、ファイル名となるので、Mid 関数 を使って取得します。
フルパスからパス名のみを取得する
ファイル名がわかれば、Replace 関数 を使ってフルパスからファイル名を削除して取得することができます。
FSO を使用してフルパスからパス・ファイル名を取得する
FSO(FileSystemObject) を使用して、フルパスからパス、ファイル名を取得することができます。パスを取得するには、GetParentFolderName メソッド を使用します。ファイル名を取得するには、GetFileName メソッド を使用します。
FSO に関しては、ファイルシステムオブジェクトの使い方 を参照してください。
ConvertFormula メソッド 使用例
サンプルVBAソース 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Sub Sample1_GetFileName() Dim TargetFilePathName As String Dim FileName As String Dim FilePath As String TargetFilePathName = "C:\MyDocuments\Sample.txt" If Dir(TargetFilePathName) <> "" Then 'ファイルが存在する場合 FileName = Dir(TargetFilePathName) Else 'ファイルが存在しない場合 FileName = Mid(TargetFilePathName, InStrRev(TargetFilePathName, "\") + 1) End If FilePath = Replace(TargetFilePathName, FileName, "") MsgBox "パス:" & FilePath & vbCrLf & "ファイル名:" & FileName End Sub |
実行結果 1
サンプルVBAソース 2(FSO 使用)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub Sample2_GetFileName() 'FileSystemObject オブジェクトを使用する方法 Dim myFSO As Object Dim TargetFilePathName As String Dim FileName As String Dim FilePath As String TargetFilePathName = "C:\MyDocuments\Sample.txt" Set myFSO = CreateObject("Scripting.FileSystemObject") FileName = myFSO.GetFileName(TargetFilePathName) FilePath = myFSO.GetParentFolderName(TargetFilePathName) MsgBox "パス:" & FilePath & vbCrLf & "ファイル名:" & FileName End Sub |
実行結果 2
関連記事
-
開いているファイルのサイズ・位置の取得(LOF 関数・Loc 関数)
LOF 関数 Open ステートメント により開かれたファイルのサイズをバイト単 …
-
特殊フォルダを取得(wsh.SpecialFolders)
CreateObject 関数:特殊フォルダを取得(WSH.SpecialFol …
-
テキストファイル:データを読み込む(Input 関数・InputB 関数)
Input 関数・InputB 関数 Open ステートメントをシーケンシャル入 …
-
「名前を付けて保存」ダイアログボックスを表示(GetSaveAsFilename メソッド)
GetSaveAsFilename メソッド 「名前を付けて保存」ダイアログボッ …
-
ディレクトリまたはフォルダの削除(RmDir ステートメント)
ディレクトリまたはフォルダの削除 ディレクトリまたはフォルダを削除するには、Rm …
-
テキストファイル:データを読み込む(Input # ステートメント)
Input # ステートメント Open ステートメント をシーケンシャル入力モ …
-
テキストファイル:データを読み込む(Get ステートメント)
Get ステートメント Open ステートメント をランダムアクセスモード(Ra …
-
「ファイルを開く」ダイアログボックスを表示(GetOpenFilename メソッド)
GetOpenFilename メソッド ファイル名を取得するための、「ファイル …
-
FileDialogFilters コレクション・FileDialogFilter オブジェクト
FileDialogFilters コレクション FileDialog オブジェ …
-
テキストファイル:データを書き込む(Put ステートメント)
Put ステートメント Open ステートメント をランダムアクセスモード(Ra …