エクセル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