ModifyFileName|ファイル名の無効文字を置換 | Excel VBA
- yuji fukami
- 2024年12月29日
- 読了時間: 2分
更新日:1月4日

<概要 (VBA ファイル名 無効文字)>
ModifyFileNameは、ファイル名として使用できない無効文字を指定した文字列に置き換えるためのExcel VBA用汎用プロシージャです(VBA ファイル名 無効文字)。
ファイル保存処理や名前を動的に生成する場面では、「<>:\"\/|?*」などの無効文字が含まれているとエラーが発生し、保存処理が失敗する原因になります。
このプロシージャを使用することで、ユーザー入力や外部データを元にした文字列であっても、安全にファイル名として使用できる形式へ変換できます。
無効文字の置換文字は引数で指定可能なため、空文字による削除や、任意の記号への置換にも対応しています。
ファイル保存前の前処理として組み込むことで、安定したファイル操作を実現できます。
ちなみにこの汎用プロシージャの名前に使っている「Modify」は「修正する」というな意味で、これ以外の「修正処理関連」の汎用プロシージャでもいろいろ使ったりします。
<実行例>
このサンプルでは、無効文字を含むファイル名文字列をModifyFileNameで安全な形式に変換しています。
元の文字列に含まれる「< > : / * ?」などの文字は、Windowsのファイル名として使用できないため、そのまま保存処理に使用するとエラーになります。
ModifyFileNameを通すことで、これらの無効文字が指定した「_」に置き換えられ、ファイル名として使用可能な文字列に変換されます。
実際の業務では、ファイル保存直前にこの処理を挟むことで、想定外の入力による保存エラーを防ぐことができます。
<関連記事>
今回紹介しているような汎用プロシージャを部品として一元管理する方法は別記事で紹介していますので、是非このノウハウも参考にしてみてください。
コーディングを効率化する上でどんどん増やしていった汎用プロシージャ(部品)をいくら増やしても簡単に流用ができるような仕組みの構築が可能になります。



