VBA:パスからファイル名を取り除く方法(1)「InStrRev」利用
VBAでツールを作っていると、パスからファイル名を削除したい場合があります。
そのような場合に使えるサンプルコードを簡単ですが記事にしておきます。
◆パスからファイルを取り除く方法(1)
サンプルのコードでは、以下の2ステップで拡張子を取り除いています。
- InStrRev関数を使って、パスの右側から「¥」の位置を探して、左端からの位置を取得
- Left関数でファイルを除いた部分を取得
サンプルコード
パスからファイル名を取り除いたものを戻すようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Function getPath() As String Dim targetPath As String Dim pathLen As Long Dim folderPath As String targetPath = "C:\Users\xxxx\testフォルダ\test.xlsx" '//(1)パスの右端から"¥"を検索し、左端からの位置を取得する' pathLen = InStrRev(targetPath, "\") '//(2)Left関数で拡張子を除いたファイル名の文字数分を取得する' folderPath = Left(targetPath, pathLen) MsgBox folderPath End Function |
「InStrRev」関数
「InStrRev」関数は、文字列(ファイル名)の中から指定された文字列(「\」円マーク)の位置を、最後の文字位置から検索し、最初に見つかった文字位置を返します。
◆関連記事
「Replace」関数を使ってもパスからファイル名を取り除くことができます。