LoginSignup
5

More than 3 years have passed since last update.

濁点・半濁点の処理(Excel for Mac)

Last updated at Posted at 2016-08-03

MacのExcel VBAで、ブック名などに濁音(ば)半濁音(ぱ)が含まれていると、うまく扱うことができずエラーになります。

Windowsのファイルシステムでは「ば」「ぱ」を1文字として扱う文字コード体系 (NFC) を採用しているのに対し、MacOSでは2文字として扱う体系 (NFD) を採用しているのが理由だそうです。

これを回避するため、NFDの濁点半濁点つき文字列を、NFCに変換する関数を作ってみました。あまり変な文字列には対応していません(濁点記号が先頭にあるとか)。検証環境は Excel 2011 for mac です。

ToNFC.bas
'NFDの濁点・半濁点つき文字列をNFCに変換
Function ToNFC(str) as string

    Dim i, nfdChrs, nfcChr

    Do
        i = InStr(str, ChrW(12441))             '濁点
        If i = 0 Then Exit Do
        nfdChrs = Mid(str, i - 1, 2)
        nfcChr = ChrW(AscW(Mid(str, i - 1, 1)) + 1) 
        str = Replace(str, nfdChrs, nfcChr)
    Loop
    Do
        i = InStr(str, ChrW(12442))             '半濁点
        If i = 0 Then Exit Do
        nfdChrs = Mid(str, i - 1, 2)
        nfcChr = ChrW(AscW(Mid(str, i - 1, 1)) + 2)
        str = Replace(str, nfdChrs, nfcChr)
    Loop

    ToNFC = str

End Function

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5