Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAでフルパスからファイル名を取得する

VBAでフルパスからファイル名を取得する

動作検証バージョン: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

実行すると、「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関数を使って「.」 の左側の文字列を取得しています。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » VBAでフルパスからファイル名を取得する

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.