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