投稿日 | : 2004/12/05(Sun) 12:20 |
投稿者 | : LESIA |
Eメール | : |
URL | : |
タイトル | : Re: 英数字混合の計算方法 |
> こんばんは。(^^)v
> 毎回、皆様方のアドバイスを参考にさせてもらっている、西田と申します。
> どうか、皆様方の良きアドバイス、お願いします。
>
> 実は、タイトルにも記載してるのですが、英数字混合の計算が出来なくて困っています。
> この英数字に+1ずつ足していって、計算を行いたい。
> ※但し、”9”の次は ”A”、”Z”の次は ”0”と計算したい。
>
> 例えば、3桁の英数字があると仮定します。
> 199 ⇒ 199+1=19A
> 19Z ⇒ 19Z+1=1A0
> 1ZZ ⇒ 1ZZ+1=200 という風に計算させたいのです。
>
> どなたか、英数字混合でしかもある程度制限付きの計算方法が分かる方がおられましたら、
> どうか、アドバイスして頂きたい。
> よろしくお願いします。
英数字混合というより36進数の計算ですね。
ただ1足すだけでしたらこんな感じでも出来ます。
Private Sub Command1_Click()
Dim strNumber As String
Dim i As Integer
Dim intC As Integer
Dim intAdd As Integer
strNumber = "1ZZ"
strNumber = StrConv(strNumber, vbUpperCase) '大文字に変換
intAdd = 1
For i = Len(strNumber) To 1 Step -1
intC = Asc(Mid$(strNumber, i, 1))
If intAdd = 1 Then
Select Case intC
Case vbKey0 To vbKey8
Mid$(strNumber, i, 1) = Chr$(intC + intAdd)
intAdd = 0
Case vbKey9
Mid$(strNumber, i, 1) = "A"
intAdd = 0
Case vbKeyA To vbKeyY
Mid$(strNumber, i, 1) = Chr$(intC + intAdd)
intAdd = 0
Case vbKeyZ
Mid$(strNumber, i, 1) = "0"
intAdd = 1
End Select
End If
Next i
MsgBox strNumber
End Sub