【VBA】ファイルのパスからファイル名だけを取得する

エクセルVBAでよく使うコードの備忘録。VBAで指定したファイルのパスからファイル名だけを抽出するコード。

スポンサーリンク

事前準備

特になし。

ファイル名だけを取得する

ファイルのパスからファイル名だけを取得する最も単純な方法は、ディレクトリ階層の区切り文字である「\」(あるいはバックスラッシュ)の一番最後の部分より右側を取得することです。下記のサンプルコードでは、InStrRev関数でファイルパスの後ろから「\」の位置を検索し、そこから右側全体を取得することでファイル名を取得しています。

コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。

サンプルコード

Public Sub GetFileNameFromPath()

    '--- ファイルのフルパス ---'
    Dim strFilePath As String
    strFilePath = "[ファイルのフルパス]"
    
    '--- 一番最後の\の位置 ---'
    Dim pos As Long
    pos = InStrRev(strFilePath, "\")
    
    '--- ファイル名を格納する変数 ---'
    Dim strFileName As String
    
    If (0 < pos) Then
        strFileName = Right(strFilePath, Len(strFilePath) - pos)
    Else
        strFileName = ""
    End If
    
End Sub