#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'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved