【VBA】フルパスからファイル名と拡張子を取得する|fso.GetFileName/GetBaseName/GetExtensionName
作成日:2022-12-02
更新日:2025-10-05

フルパスから拡張子付きのファイル名を取得
' 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]画像として貼り付けCopyPicture 【VBA】セル範囲を画像としてコピーする|CopyPicture -
テーブルの指定位置に行を追加 【VBA】Excelテーブルの指定した位置に行を追加する -
[VBA]Cells or Range 【VBA】.Cells と .Range の使い分け目安|数千か数万か -
UsedRangeのデータを配列で取得 【VBA】シートにあるデータを配列に格納する(空白含む)|UsedRange -
ユーザーフォームを半透明にする 【VBA】ユーザーフォームを半透明にしてシートの内容が見えるようにする|waiting-form -
[VBA]SaveAs名前を付けて保存 【VBA】名前を付けて保存|SaveAs