5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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
5
5
0

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
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?