パスから拡張子を除いたファイル名を取得する
パスから拡張子を除いたファイル名を取得するにはFileSystemObjectのGetBaseNameメソッドを利用します。
GetBaseNameメソッドを利用した場合、パスやファイルは実際に存在していなくても値が返されます。
引数の文字列からファイル名に相当する部分を取得するような形になります。
'******************************************************************
' フルパスからファイル名を取得(拡張子なし)
'******************************************************************
Sub Main_getBaseName()
'対象のファイルパス
Dim sFilePath As String
sFilePath = "C:\VBA\ExcelVBA.xlsm"
'ファイル名(拡張子なし)を取得
Dim sFileName As String
sFileName = getStrBaseFileName(sFilePath)
Debug.Print "フルパス :" & sFilePath
Debug.Print "ファイル名 :" & sFileName
End Sub
'******************************************************************
' 拡張子なしのファイル名を取得(FileSystemObject)
'------------------------------------------------------------------
' 第1引数:パス、ファイル名の文字列
'------------------------------------------------------------------
' 戻り値 :ファイル名(拡張子なし)
'******************************************************************
Function getStrBaseFileName(getPath As String) As String
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'ファイル名を取得
getStrBaseFileName = oFso.GetBaseName(getPath)
Set oFso = Nothing
End Function■実行結果



