VBA 禁則文字をサニタイジング

ファイル・フォルダ名用にサニタイジング

※ ファイル・フォルダ名を作成時、利用できな文字があるとエラーになるので、サニタイジングする

VB
'==========================================
' 危険な半角記号を全角に変換して安全なフォルダ名にする
'==========================================
Public Function SanitizeFolderNameFullWidth(ByVal nameIn As String) As String

    Dim s As String
    s = nameIn

    '--- 改行・タブなど制御文字除去 ---
    s = Replace(s, vbCr, "")
    s = Replace(s, vbLf, "")
    s = Replace(s, vbTab, "")

    '--- 半角 → 全角 変換テーブル ---
    s = Replace(s, "\", "\")
    s = Replace(s, "/", "/")
    s = Replace(s, ":", ":")
    s = Replace(s, "*", "*")
    s = Replace(s, "?", "?")
    s = Replace(s, """", """)
    s = Replace(s, "<", "<")
    s = Replace(s, ">", ">")
    s = Replace(s, "|", "|")

    '--- 先頭・末尾のスペース・ピリオド(フォルダ名禁止) ---
    s = Trim(s)
    If Left$(s, 1) = "." Then s = "." & Mid$(s, 2)
    If Right$(s, 1) = "." Then s = Left$(s, Len(s) - 1) & "."

    '--- 空名対策 ---
    If Len(s) = 0 Then s = "名称未設定"

    SanitizeFolderNameFullWidth = s
End Function

コメント