動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2506(ビルド18925.20168クイック実行)
「excelマクロ パスからワークブックネーム」
といった検索キーワードでアクセスがありました。
[スポンサードリンク]
フルパスからファイル名を取得するサンプルマクロ
以下のマクロが参考になるはずです。
Sub フルパスからファイル名を取得する()
Dim full_path As String
full_path = "C:\temp\sample.xlsx"
Dim f_name As String
f_name = Mid(full_path, InStrRev(full_path, "\") + 1)
MsgBox f_name
f_name = Left(f_name, InStrRev(f_name, ".") - 1)
MsgBox f_name
End Sub
Dim full_path As String
full_path = "C:\temp\sample.xlsx"
Dim f_name As String
f_name = Mid(full_path, InStrRev(full_path, "\") + 1)
MsgBox f_name
f_name = Left(f_name, InStrRev(f_name, ".") - 1)
MsgBox f_name
End Sub
実行すると、「C:\temp\sample.xlsx」の、拡張子つきファイル名「sample.xlsx」と、拡張子無しファイル名「sample」が順番に表示されます。
サンプルマクロで行っている処理
フルパスから、拡張子つきファイル名を取得しているのが
f_name = Mid(full_path, InStrRev(full_path, "\") + 1)
です。
InStrRev関数を使って、変数full_pathに代入されているフルパスの末尾から、「\」を探して先頭から何文字目にあるかを取得して、Mid関数を使って「\」の後ろの文字列を取得しています。
拡張子つきファイル名から、拡張子無しのファイル名を取得しているのが、
f_name = Left(f_name, InStrRev(f_name, ".") - 1)
です。
InStrRev関数を使って、変数f_nameに代入されている拡張子つきファイル名の末尾から、「.」を探して先頭から何文字目にあるかを取得して、Left関数を使って「.」 の左側の文字列を取得しています。
[スポンサードリンク]
- Newer:VBAでセル内画像をセルの上に配置する
- Older:VBAでワークシート上の画像をセル内に配置する
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAでフルパスからファイル名を取得する