投稿時間: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
|