Excel VBAでフルパスからファイル名のみ取得する|Mid関数を使用

文字列から一部分の文字列を取り出すVBAです。



Homeに戻る > Excel ファイル操作のTipsへ

フルパスとはドライブ名+フォルダ名+ファイル名の形式のことです。

Excel VBAでファイル選択ダイアログを使用した場合など、取得したファイル名はフルパスになります。

そこから、下記のようにしパスを除いたファイル名のみを取り出すことができます。

方法は、フルパスを逆の最後尾から1文字づつ読み「¥」文字が見つかれば、そこまでがファイル名ということになります。

一文字の取り出しはMid関数を使用しています。

この方法を応用し、拡張子、拡張子を除くファイル名、パス名のみなどを取り出すこともできます。

関連するTipsの「VBA講座 ブックの操作:ファイル名・フォルダ名を取得」も参照してください。



取得プロシージャを呼び出す

フルパスを引数にしています。

Private Sub GetFile()
    Dim makefile As String
    
    makefile = GetFileName("C:\MYEXCEL\book2.xls")
End Sub

フルパスからファイル名のみ取得するExcel標準モジュールコード

実行順

  • LEN関数でフルパスの文字数を取得します。
  • Forで文字数分ループします。
  • Mid関数で最後尾から1文字づつ取出します。
  • その1文字がパス文字かどうか判定し、パス文字ならばループを抜けます。
  • パス文字から右の文字列がファイル名なので、それを返します。
'フルパスからファイル名のみ取得
Function GetFileName(fullpath As String) As String
    Dim i As Integer
    Dim nlen As Integer
    Dim s As String

On Error GoTo Errsub
    nlen = Len(fullpath)
    For i = nlen To 0 Step -1
        s = Mid$(fullpath, i, 1)
        If s = "\" Then Exit For
    Next
    s = Right$(fullpath, nlen - i)
    GetFileName = s
    Exit Function
Errsub:
    GetFileName = ""
End Function


Homeに戻る > Excel ファイル操作のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved