【VBA】フルパスからファイル名と拡張子を取得する
作成日:2022-12-02
更新日:2025-11-05

fso.GetFileName/GetBaseName/GetExtensionName
フルパスから拡張子付きのファイル名を取得
' Return file name with extension from full path
Public Function GetFileNameFromFullPath(ByVal fullPath As String) As String
On Error GoTo ErrHandler
Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
GetFileNameFromFullPath = fso.GetFileName(fullPath)
Exit Function
ErrHandler:
GetFileNameFromFullPath = ""
End Functionフルパスから拡張子なしのファイル名を取得
' Return base name (without extension) from full path
Public Function GetBaseNameFromFullPath(ByVal fullPath As String) As String
On Error GoTo ErrHandler
Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
GetBaseNameFromFullPath = fso.GetBaseName(fullPath)
Exit Function
ErrHandler:
GetBaseNameFromFullPath = ""
End Functionフルパスから拡張子のみを取得
' Return extension name from full path
Public Function GetExtensionFromFullPath(ByVal fullPath As String) As String
On Error GoTo ErrHandler
Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject")
GetExtensionFromFullPath = fso.GetExtensionName(fullPath)
Exit Function
ErrHandler:
GetExtensionFromFullPath = ""
End Function- FSO(FileSystemObject)の
GetFileNameを使うと簡単にファイル名が取れる - 再利用性を考えて関数化しておくのがベスト
- 例外処理を加えておくと、安全に使える
Use FSO.GetFileName for simplicity and reliability.
シンプルさと信頼性のために FSO.GetFileName を使おう
FileSystemObject の便利メソッド
以下の便利メソッドがある
GetFileName(path)|フルパスからファイル名のみを返すGetBaseName(path)|拡張子を除いたファイル名を返すGetExtensionName(path)|拡張子だけを返す

FSOはシングルトンで使おう
Referenced Insights & Citations
- Microsoft Docs. FileSystemObject.GetFileName method (VBScript). Retrieved from: https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/getfilename-method
| FileSystemObject|ファイルシステムオブジェクト |
| GetFileName|ファイル名を取得する |
| GetBaseName|拡張子を除いた名前を取得する |
| GetExtensionName|拡張子を取得する |
| Error Handling|エラーハンドリング |
With FileSystemObject,
you can easily extract
the filename from a full path
you can easily extract
the filename from a full path
2022-12-02
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-

[VBA]Trimwhitespace 【VBA】先頭,末尾,両端の空白を削除する|Trim -

dictionaryをセットする 【VBA】Dictionaryのセット|CreateObject(“Scripting.Dictionary”) -

絶対値を取得 【VBA】絶対値を取得する|Abs -

[VBA]Merge1D Arrays 【VBA】一次元配列と一次元配列を結合する -

[VBA]Vertical Paste1D array 【VBA】一次元配列を縦方向にシートに貼り付け【範囲をリサイズする】 -

[VBA]開いているブックからファイルを探す 【VBA】開いている全ブックから対象ブックをセット|InStr ファイル名の一部で判定