ExcelマクロVBA技術解説 | フルパスをディレクトリ、ファイル名、拡張子に分ける | Excelマクロの問題点と解決策、エクセルVBAの技術的解説



最終更新日:2017-04-15

フルパスをディレクトリ、ファイル名、拡張子に分ける

ファイルのフルパスを、ディレクトリ、ファイル名、拡張子に分けます。

FileSystemObjectを使う方法と、VBA関数で分けるVBAのサンプルコードになります。


Dim sFile As String
sFile = "C:\Users\hogehoge\Desktop\サンプル.txt"

Dim objFSO As New FileSystemObject

'ディレクトリ
MsgBox objFSO.GetParentFolderName(sFile)
'ファイル名
MsgBox objFSO.GetFileName(sFile)
'ファイル名(拡張子を除く)
MsgBox objFSO.GetBaseName(sFile)
'拡張子を除く
MsgBox objFSO.GetExtensionName(sFile)

順に、
C:\Users\hogehoge\Desktop
サンプル.txt
サンプル
txt
と表示されます。

「Microsoft Scripting Runtime」を参照設定してください。
参照設定しない場合は、
Dim objFSO As Objec
Set objFSO = CreateObject("Scripting.FileSystemObject")
として下さい。


Dim sFile As String
sFile = "C:\Users\hogehoge\Desktop\サンプル.txt"

'ディレクトリ
MsgBox Left(sFile, InStrRev(sFile, "\") - 1)
'ファイル名
MsgBox Mid(sFile, InStrRev(sFile, "\") + 1)
'ファイル名(拡張子を除く)
MsgBox Mid(sFile, InStrRev(sFile, "\") + 1, InStrRev(sFile, ".") - InStrRev(sFile, "\") - 1)
'拡張子を除く
MsgBox Mid(sFile, InStrRev(sFile, ".") + 1)

順に、
C:\Users\hogehoge\Desktop
サンプル.txt
サンプル
txt
と表示されます。

ディレクトリは最後の\の前まで、最後の\の後ろがファイル名になります。
ファイル名には、.が含まれる場合もあるので、
最後の.以降が拡張子となります。
つまり、ディレクトリの\や、拡張子の.を文字列の後ろから検索するのがコツです。
それには、InStrRev関数を使います。




同じテーマ「ExcelマクロVBA技術解説」の記事

マクロとは、VBAとは
コーディングとデバッグ
オブジェクトとプロパティの真実
WorksheetFunctionについて
RangeとCellsの深遠
Offset、Resizeを使いこなそう
マクロ作成後に、表位置がずれた場合の対処

新着記事 ・・・新着記事一覧を見る

フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)
ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.ひらがな⇔カタカナの変換|エクセル基本操作
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
5.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
6.変数とデータ型(Dim)|ExcelマクロVBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
8.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • フルパスをディレクトリ、ファイル名、拡張子に分ける

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。




    ↑ PAGE TOP