ファイルパス、ファイル名から拡張子を除いたファイル名を取得する
- yuji fukami
- 2024年12月29日
- 読了時間: 2分
<概要>
今回はファイルパス、ファイル名から拡張子を除いたファイル名を取得する汎用プロシージャの紹介です。
以前紹介したフルパスからファイル名だけを抽出する汎用プロシージャ「GetFileName」の派生形ですが、今回紹介するのは拡張子ものぞいた場合のファイル名を取得する処理です。
この処理が求められる用途として次のようなものが挙げられます。
①Excelブックのバックアップをファイル名に日付などを付けて保存する。
②マクロ付きブックのバージョンを上げる。
具体的にもっと詳しく説明すると、
①「[ファイル名].xlsm」→「[ファイル名]_20241229.xlsm」で別名保存
②「[ファイル名] ver1.00.xlsm」→「[ファイル名] ver1.01.xlsm」で別名保存
などのようにファイル名と拡張子を一旦分離しないとできないような処理で今回紹介する汎用プロシージャ「GetFileNameWithoutExtension」が便利に使えたりします。
<実行例>
実行例のサンプルコードは次の通りです。
実際に上記で説明した②のようなバージョンアップの処理を行ってみましょう。より実践的なコードですが頑張ってついて来てみてください。
このサンプルコードで利用している別の汎用プロシージャ「GetExtension」「ConvOneDrivePath_LocalPath」は以前紹介したものですので、参考リンクを載せておきます。
・GetExtension → https://www.softex-celware.com/post/getextension
・ConvOneDrivePath_LocalPath → https://www.softex-celware.com/post/convonedrivepath_localpath
このサンプルコードを「実行サンプル ver1.00.xlsm」のブックの中で実行すると、次のようにver1.00からver1.01が自動的に別名で保存されます。

ちなみにサンプルコードの中で。 Workbookオブジェクトの変数「Book」にThisWorkbookを割り当てていますが、ActiveWorkbookを利用するとより汎用的に使用できます。例えばリボンにこのマクロを登録すると、ほかのマクロ付きブックでも簡単にバージョンアップができるようなことができたりします。
マクロのリボン登録に関しては、下記記事を参考にしてみてください。
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。
Comments