Digital_Neko

フリーランスプログラマー

Excel VBA 文字列置換 

今回は、文字列を置換する関数の作成です。サンプルプログラムは、文字列に半角カナの
「ア、イ、ウ、エ、オ」が含まれている場合、全角カナの「ア、イ、ウ、エ、オ」に変換して文字列を
出力します。1行1列のセルに変換したい文字列が入っていると仮定します。

Option Base 1
Function Henkan(Str As Range) As String

Dim kana(5, 2) As String
kana(1, 1) = “ア”
kana(1, 2) = “ア”
kana(2, 1) = “イ”
kana(2, 2) = “イ”
kana(3, 1) = “ウ”
kana(3, 2) = “ウ”
kana(4, 1) = “エ”
kana(4, 2) = “エ”
kana(5, 1) = “オ”
kana(5, 2) = “オ”

Dim i As Long
Dim Data As String
Data = Str.Value

For i = 1 To 5
 Data = Replace(Data, kana(i, 1), kana(i, 2))
Next i

Henkan = Data

End Function

MsgBox Henkan(Cells(1, 1))

今回のポイントは、
(1)5行2列の配列を準備する
(2)1列目には、変換したい文字を、2列目には変換後の文字を代入
(3)ループ処理で配列の行数だけ、Replace関数を使う

今回の関数は引数に、変換したい文字列が入ったセルをいれると、変換後の文字列が出力されます。
例として、MsgBox 関数で1行1列の文字列を変換して表示しています。ループ処理を使いたくない場合は、Replace関数だけで処理をするのも手だと思います。