パスから拡張子を除いたファイル名を取得

パスから拡張子を除いたファイル名を取得する

パスから拡張子を除いたファイル名を取得するには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

 ■実行結果