例えばExcelのセルから読み取った値を使ってファイル名の変更等を行いたいとき、ファイル名として使用できない文字がセルの値に含まれていると処理が失敗します。
今回は、そのような場合にファイル名として使えない文字をチェックして別の文字に置き換える処理を紹介します。
ファイル名として使えない文字を別の文字に置き換えるフロー
Windowsの場合、ファイル名やフォルダー名として使用できない文字は下記の9種類です。
- < (より小さい)
- > (より大きい)
- : (コロン)
- " (二重引用符)
- / (スラッシュ)
- \ (円記号)
- | (垂直バーまたはパイプ)
- ? (疑問符)
- * (アスタリスク)
https://learn.microsoft.com/ja-jp/windows/win32/fileio/naming-a-file?WT.mc_id=M365-MVP-4029057 より
まずはテスト用に上記の文字を含む変数を設定します。
- 変数: %TargetText%
- 値: A<B>C:D"E/F\G|H?I*J
この変数をファイル名として使おうとしても下図のようにエラーが発生します。
このような場合は「テキストを置換する」アクションを使うことで、ファイル名として使用できない文字を別の文字に置き換えることができます。
- 解析するテキスト: %TargetText%
- 検索するテキスト:
[<>:\"\/\\\|\?\*]
- 検索と置換に正規表現を使う: オン
- 置き換え先のテキスト: %''%
- 生成された変数: %Replaced%
上記アクションではファイル名として使用できない文字を、正規表現を使って検索して、置き換え先のテキストを空文字(%''%)に置き換えることで削除しています。
(置き換え先のテキストを変更することで別の文字に置き換えることもできます。)
今回は9種類の文字のみを対象としましたが、下記記事にあるように“使わない方が良い”文字は他にもありますので、必要に応じて「テキストを置換する」アクションの「検索するテキスト」を変更して検索・置換する文字を追加すると良いでしょう。
この記事へのコメントはありません。