|
有難うございます。
すごく助かりました。
いい足りてない部分はすみませんでした。
これから、この式はうまく使っていきます。
本当に有難うございます。
▼awu さん:
>> ですから、今は0だけが反応しないです。
>
>だから、0 のときは、どうなるのって聞いていたのですが・・・
>当初の質問では、例だとしても、1 が "あ" ですから 0 が無いのかと・・・
>
>例えば、0〜9をそれぞれ "あ"〜"こ" の文字に変換とか表現してくれれば・・・
>
>> そして、1212と入れたら、なんか”あいSS”になります
>> これになると数値の意味は1222になっているではないでしょうか?
>
>これは、左側に既にある数字のときは、S に変換する と解釈したのです。
>
>
>ということで、今の仕様は、
>
>書式 : =NumtoStr( 数値 )
>
>使用例 : =NumtoStr(A1) A1 に 001233 が入力されているとき、"ASBCDS" を返します。
>
>ただし、先頭に 0 が付加されていますから、書式が文字列にする必要があります。
>書式で設定しても補足した 0 は、無視されます。
>
>戻り値は、引数に指定した数値に対して、0〜9 を A〜J にそれぞれ変換します。
>ただし、同じ数字が続く限り、その最初だけを上記の変換をし、あとは、S に変換します。
>
>もし、数字以外が含まれている場合は、その文字だけを無視します。
>
>こんな感じで宜しいのでしょうか。
>
>
>Function NumtoStr(S As Variant) As String
>Dim StrRe As String
>Dim N As Integer
>Dim Num As Integer
>Dim W As Variant
>If Len(S) = 0 Then
> NumtoStr = vbNullString
> Exit Function
>End If
>For N = 1 To Len(S)
> If IsNumeric(Mid(S, N, 1)) Then
> Num = Val(StrConv(Mid(S, N, 1), vbNarrow))
> '下の " " の中には、0〜9 に対応する文字を設定する 現在 0→"A"
> W = Choose(Num + 1, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
> If Not IsNull(W) Then
> If Right(Replace(StrRe, "S", ""), 1) = W Then
> StrRe = StrRe & "S"
> Else
> StrRe = StrRe & W
> End If
> End If
> End If
>Next N
>NumtoStr = StrRe
>End Function
|
|