今回作成した「RomeReg」関数は引数として「kf=あ」を渡すと「6B,66,3D,82,A0,00,\」の様な文字列を返します。
これを使ってレジストリファイルを作ってレジストリを「アレ」すれば通常のローマ字設定では編集できない定義が使えたりします。
具体的には月配列のような特殊な配列をローマ字定義の書き換えのみで実装できるわけです。
Option Explicit
Function RomeReg(xs As String) As String
' --- 宣言 ---
Dim i As Long
Dim HexCode As String
Dim Result As String
' --- 処理 ---
For i = 1 To Len(xs)
HexCode = GetHexCode(Mid(xs, i, 1))
If Len(HexCode) = 2 Then
' 16進表記で2文字と言う事は1バイト文字
Result = Result & HexCode & ","
ElseIf Len(HexCode) = 4 Then
' 16進表記で4文字と言う事は2バイト文字
Result = Result & Left(HexCode, 2) & "," _
& Right(HexCode, 2) & ","
Else
' ※ここには到達しないはず
Result = "-- Something is wrong!! --"
End If
Next i
' --- 結果 ---
RomeReg = Result & "00,\"
End Function
' 先頭文字の文字コードを16進表記で返す関数
Function GetHexCode(xs As String) As String
GetHexCode = Hex(Asc(xs))
End Function
ワークシートから呼び出す事も出来ますし VBA の中で使用しても OK です。
みんな月配列使いましょう!!