Function การเปลี่ยนค่าเงินเป็นตัวอักษรภาษาไทย
Posted October 7th, 2004 by nattster
Function นี้เป็น Function ในการเปลี่ยนค่าเงินเป็นตัวอักษรภาษาไทยคับ
Function ThaiMoney(inp) As String
Dim Buf$(1), t$(9), t1$(2), w$(7)
t$(1) = "หนึ่ง": t1$(1) = "เอ็ด"
t$(2) = "สอง": t1$(2) = "ยี่"
t$(3) = "สาม"
t$(4) = "สี่"
t$(5) = "ห้า"
t$(6) = "หก"
t$(7) = "เจ็ด"
t$(8) = "แปด"
t$(9) = "เก้า"
w$(2) = "สิบ"
w$(3) = "ร้อย"
w$(4) = "พัน"
w$(5) = "หมื่น"
w$(6) = "แสน"
w$(7) = "ล้าน"
On Error GoTo Errchk01
inpt$ = Trim(Str$(inp))
If inpt$ = "" Then
ThaiMoney = ""
Exit Function
End If
P% = InStr(inpt$, ".")
If P% = 0 Then
inpt$ = inpt$ + ".00"
Else
Select Case Len(inpt$) - P%
Case 0
inpt$ = inpt$ + "00"
Case 1
inpt$ = inpt$ + "0"
Case Else
inpt$ = Mid$(inpt$, 1, P% + 2)
End Select
End If
n% = 0
For i% = 1 To Len(inpt$)
P% = InStr("0123456789.", Mid$(inpt$, i%, 1))
Select Case P%
Case 1 To 10
Buf$(n%) = Buf$(n%) + Mid$(inpt$, i%, 1)
Case 11
n% = n% + 1
End Select
Next i%
'สตางค์
Stang$ = ""
n% = Val(Buf$(1))
Select Case Val(Buf$(1))
Case 0
Stang$ = "ถ้วน"
Case Is < 10
Stang$ = t$(n%) + "สตางค์"
Case Else
n% = Val(Left$(Buf$(1), 1))
If n% = 1 Then Stang$ = w$(2)
If n% = 2 Then Stang$ = t1$(2) + w$(2)
If n% > 2 Then
Stang$ = t$(n%) + w$(2)
End If
n% = Val(Right$(Buf$(1), 1))
If n% = 1 Then Stang$ = Stang$ + t1$(1)
If n% > 1 Then
Stang$ = Stang$ + t$(n%)
End If
Stang$ = Stang$ + "สตางค์"
End Select
'บาท
If Len(Buf$(0)) > 6 Then
Buf$(1) = Right$(Buf$(0), 6)
Buf$(0) = Left$(Buf$(0), Len(Buf$(0)) - 6)
Else
Buf$(1) = Buf$(0)
Buf$(0) = ""
End If
baht$ = ""
For i% = 0 To 1
If Buf$(i%) <> "" Then
Do
n% = Len(Buf$(i%))
k% = Val(Left$(Buf$(i%), 1))
Select Case n%
Case 1
If k% = 1 And Val(kk$) > 10 Then baht$ = baht$ + t1$(1)
If k% = 1 And Val(kk$) < 10 Then baht$ = baht$ + t$(1)
If k% > 1 Then
baht$ = baht$ + t$(k%)
End If
If i% = 0 Then
baht$ = baht$ + "ล้าน"
Else
baht$ = baht$ + "บาท"
End If
Case 2
If k% = 1 Then baht$ = baht$ + w$(2)
If k% = 2 Then baht$ = baht$ + t1$(2) + w$(2)
If k% > 2 Then
baht$ = baht$ + t$(k%) + w$(2)
End If
kk$ = Buf$(i%)
Case Else
If k% > 0 Then baht$ = baht$ + t$(k%) + w$(n%)
End Select
Buf$(i%) = Right$(Buf$(i%), Len(Buf$(i%)) - 1)
Loop Until Buf$(i%) = ""
End If
Next i%
ThaiMoney = baht$ + Stang$
Exit Function
Errchk01:
ThaiMoney = ""
End Function
Post new comment