本当のString.StrCnv(str, wbWide)はこれだ

String.StrConv(str, wbWide)

これに疑問を持つ人なんています?
まさかWindows7から文字化けする文字があるなんて思ってもみなかったよね。

Public Function StrConvWide(str As String) As String
    
    StrConvWide = ""
    
    Dim i As Long
    Dim strTemp As String
    For i = 1 To Len(str)
        ' 1文字抜き出す
        strTemp = Strings.Mid$(str, i, 1)
        
        ' Windows7以降文字化けする文字列は手動で変換する
        If Strings.StrComp("゛", strTemp) = 0 Or Strings.StrComp("゙", strTemp) = 0 Then
            StrConvWide = StrConvWide & "゛"
        ElseIf Strings.StrComp("゜", strTemp) = 0 Or Strings.StrComp("゚", strTemp) = 0 Then
            StrConvWide = StrConvWide & "゜"
        Else
            StrConvWide = StrConvWide & Strings.StrConv(strTemp, vbWide)
        End If
    Next i
End Function

他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)