|
イチゴ さん、こんにちわ。
>例えば
> 1=あ 2=い 3=う 重複ならSになる。
> A1に”1”を入力するばB1に”あ”というひらがなになる。
> A2に”21”を入力すればB2に”いあ”
> A3に”22”を入力すればB3に”いS”になる
関数名はTestです。
Function test(a As String) As String
Dim LL(0 To 9) As String, NN(0 To 9) As Integer
Dim bb As String, blen As Integer, md As Integer, ss As String
Dim II As Integer
'数字に対応して変更する文字列
LL(0) = "■"
LL(1) = "あ": LL(2) = "い": LL(3) = "う"
LL(4) = "え": LL(5) = "お": LL(6) = "か"
LL(7) = "き": LL(8) = "く": LL(9) = "け"
'初期文字列
bb = a
blen = Len(bb)
'
For II = 0 To 9
Do
md = InStr(bb, Format(II, "0"))
If md = 0 Then Exit Do
'数をカウント
NN(II) = NN(II) + 1
'2回目以降はS
If NN(II) = 1 Then ss = LL(II) Else ss = "S"
'文字の置き換え
If md = 1 Then
bb = ss & Right(bb, blen - 1) '頭
ElseIf md = blen Then
bb = Left(bb, blen - 1) & ss '末尾
Else
bb = Left(bb, md - 1) & ss & Right(bb, blen - md) '途中
End If
Loop
Next
'関数の戻り値
test = bb
End Function
0とか4とか、最初に書いてなかったのに実行時には指定していたりするみたいなので、0から9までを何に変えるかをリストに持ってチェックしています。
|
|