【VBA】ファイル名(パス)から拡張子を除く

エクセルVBAでよく使うコードの備忘録。VBAでファイル名(あるいはパス)から拡張子だけを取り除くコード。

スポンサーリンク

事前準備

特になし。

拡張子を除く

拡張子だけを除外するサンプルコードです。拡張子は最後の「.」より右側なのでその部分を除きます。一番最後の「.」の場所を取得するためInStrRevという文字列を後ろから検索する関数を使います。文字列を最初から検索すると「test.2.xlsx」みたいなファイル名に対応できないので注意が必要です。

Public Sub ExcludeExtention()

    '--- ファイルのパス(あるいはファイル名) ---'
    Dim strFileName As String
    strFileName = "[ファイルのパス(あるいはファイル名)]"
    
    '--- 拡張子の位置 ---'
    Dim posExt As Long
    posExt = InStrRev(strFileName, ".")
    
    '--- 拡張子を除いたパス(ファイル名)を格納する変数 ---'
    Dim strFileExExt As String
    
    If (0 < posExt) Then
        strFileExExt = Left(strFileName, posExt-1)
    Else
        strFileExExt = strFileName
    End If
    
End Sub