#721 ファイル名に使えない文字を強制的に除去する VBA

「#557 ファイル名に使えない文字が含まれていないかチェックする」のアレンジ版です。引数に指定したファイル名の中に使えない文字があった場合には、それを除去した値を返すサンプルプロシージャです。
前者はチェック結果がNGの場合に処理を中断する判断に使えますが、今回のものは中断せずに強制的にそれを除去したファイル名で処理を続行したいようなケースで使えると思います。

Public Function RemoveFileNameChar(strFileName As String) As String

  Dim avarExcept As Variant
  Dim strRet As String
  Dim iintLoop As Integer

  '使用不可の文字を配列に代入
  avarExcept = Array("\", "/", ":", "*", "?", """", "<", ">", "|")

  '配列の文字をひとつずつ置換するループ
  strRet = strFileName
  For iintLoop = 0 To UBound(avarExcept)
    '使えない文字を強制的に””に置換することで除去
    strRet = Replace(strRet, avarExcept(iintLoop), "", , , vbBinaryCompare)
  Next iintLoop

  '置換後の文字列を返す
  RemoveFileNameChar = strRet

End Function

実行例:



応用:
もし、使えない文字を取り除くのではなく別の文字に置き換えたい場合には、Replace関数の部分を次のようにします(「●」という1文字に置き換える場合)。

strRet = Replace(strRet, avarExcept(iintLoop), "●", , , vbBinaryCompare)

| Index | Prev | Next |

この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......
T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved