📄 module1.bas
字号:
Attribute VB_Name = "Module1"
Public SourceVal As String
Public SourceDec As String
Public MoneyVal As String
Public MoneyDec As String
Public Plural As String
Public NoCur As Boolean
Dim Ones(9) As String
Dim Tens(9) As String
Dim STens(19) As String
Const None = ""
Const Rat = "ratus "
Const Rib = "ribu "
Const Jut = "juta "
Const Mil = "miliar "
Const Tril = "triliun "
Dim Source As String
Dim Range As String
Dim One As String, Two As String, Three As String
Public Sub LoadMeFirst()
MoneyVal = "Rupiah"
MoneyDec = "Sen"
Dim i As Byte
For i = 0 To 9
Select Case i
Case 0: Ones(i) = "": STens(i + 10) = "Sepuluh "
Case 1: Ones(i) = "Se": STens(i + 10) = "Sebelas "
Case 2: Ones(i) = "Dua ": Tens(i) = "Dua puluh ": STens(i + 10) = "Dua Belas "
Case 3: Ones(i) = "Tiga ": Tens(i) = "Tiga puluh ": STens(i + 10) = "Tiga belas "
Case 4: Ones(i) = "Empat ": Tens(i) = "Empat puluh ": STens(i + 10) = "Empat belas "
Case 5: Ones(i) = "Lima ": Tens(i) = "Lima puluh ": STens(i + 10) = "Lima belas "
Case 6: Ones(i) = "Enam ": Tens(i) = "Enam puluh ": STens(i + 10) = "Enam belas "
Case 7: Ones(i) = "Tujuh ": Tens(i) = "Tujuh puluh ": STens(i + 10) = "Tujuh belas "
Case 8: Ones(i) = "Delapan ": Tens(i) = "Delapan puluh ": STens(i + 10) = "Delapan belas "
Case 9: Ones(i) = "Sembilan ": Tens(i) = "Sembilan puluh ": STens(i + 10) = "Sembilan belas "
End Select
Next i
End Sub
Public Function Convert() As String
Dim WholeVal As String
Convert = "": Range = "": One = "": Two = "": Three = ""
Source = SourceVal
If Val(SourceVal) > 1 Then
WholeVal = MoneyVal & Plural
Else
WholeVal = MoneyVal
End If
Select Case Len(SourceVal)
Case 0
GoTo 1
Case 1
One = 1: Range = None: Convert = First
If SourceVal = 0 Then Convert = "Zero "
Case 2
One = 1: Two = 2: Range = None: Convert = Second
Case 3
One = 1: Two = 2: Three = 3: Range = None: Convert = Third
Case 4
One = 4: Range = Rib: Convert = First
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 5
One = 4: Two = 5: Range = Rib: Convert = Second
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 6
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 7
One = 7: Range = Jut: Convert = First
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 8
One = 7: Two = 8: Range = Jut: Convert = Second
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 9
One = 7: Two = 8: Three = 9: Range = Jut: Convert = Third
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 10
One = 10: Range = Jut: Convert = First
One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 11
One = 10: Two = 11: Range = Jut: Convert = Second
One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 12
One = 10: Two = 11: Three = 12: Range = Jut: Convert = Third
One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 13
One = 13: Range = Tril: Convert = First
One = 10: Two = 11: Three = 12: Range = Jut: Convert = Convert & Third
One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 14
One = 13: Two = 14: Range = Tril: Convert = Second
One = 10: Two = 11: Three = 12: Range = Jut: Convert = Convert & Third
One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
Case 15
One = 13: Two = 14: Three = 15: Range = Tril: Convert = Third
One = 10: Two = 11: Three = 12: Range = Jut: Convert = Convert & Third
One = 7: Two = 8: Three = 9: Range = Jut: Convert = Convert & Third
One = 4: Two = 5: Three = 6: Range = Rib: Convert = Convert & Third
One = 1: Two = 2: Three = 3: Range = None: Convert = Convert & Third
End Select
Convert = Convert & WholeVal
Exit Function
1:
Convert = ""
End Function
Public Function ConvertDec() As String
Dim DeciVal As String
ConvertDec = "": Range = "": One = "": Two = "": Three = ""
Source = SourceDec
If Val(SourceDec) > 1 Then
DeciVal = MoneyDec & Plural
Else
If Len(SourceDec) <> 1 Then
DeciVal = MoneyDec
Else
DeciVal = MoneyDec & Plural
End If
End If
If Val(SourceDec) = 0 Then GoTo 1
Select Case Len(SourceDec)
Case 0
GoTo 1
Case 1
If SourceDec <> 1 Then
ConvertDec = Tens(SourceDec)
Else
ConvertDec = STens(SourceDec + 9)
End If
Case 2
If Val(Left(SourceDec, 1)) = 0 Then
One = 1: Range = None
ConvertDec = First
Else
One = 1: Two = 2: Range = ""
ConvertDec = Second
End If
End Select
Dim Con As String
Con = ""
If SourceVal <> "" Then
Con = " and "
If NoCur = True Then Con = "and "
End If
ConvertDec = Con & ConvertDec & DeciVal
Exit Function
1:
ConvertDec = ""
End Function
Function First() As String
First = Ones(Val(Left(Right(Source, One), 1))) & Range
End Function
Function Second() As String
Select Case Val(Left(Right(Source, Two), 2))
Case Is > 19
Second = Tens(Val(Left(Right(Source, Two), 1))) & Ones(Val(Left(Right(Source, One), 1))) & Range
Case Is < 20
Second = STens(Val((Left(Right(Source, Two), 2)))) & Range
End Select
End Function
Function Third() As String
Select Case Val(Left(Right(Source, Three), 3))
Case Is > 99
Select Case Val(Left(Right(Source, Two), 2))
Case Is > 9
If Val(Left(Right(Source, Two), 2)) < 20 Then
Third = Ones(Left(Right(Source, Three), 1)) & Rat & STens(Val(Left(Right(Source, Two), 2))) & Range
End If
Third = Ones(Left(Right(Source, Three), 1)) & Rat & Second
Case Is < 10
Third = Ones(Left(Right(Source, Three), 1)) & Rat & First
End Select
Case Is < 100
Select Case Val(Left(Right(Source, Two), 2))
Case Is > 19
Third = Tens(Left(Right(Source, Two), 1)) & Ones(Left(Right(Source, One), 1)) & Range
Case Is < 20
If Val(Left(Right(Source, Two), 2)) > 9 Then
Third = STens(Val(Left(Right(Source, Two), 2))) & Range
ElseIf Val(Left(Right(Source, Two), 2)) < 10 Then
Third = Ones(Val(Left(Right(Source, One), 1))) & Range
If Val(Left(Right(Source, Two), 2)) = 0 Then
Third = ""
End If
End If
End Select
End Select
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -