Giả sử bạn có file excel để in Phiếu thu(chi) chẳng hạn, và bạn muốn mỗi khi gõ số tiền vào phiếu bằng số tại ô A1 thì chương trình tự đọc ra số tiền bằng chữ tại ô A2, Bạn làm như sau:
- Đầu tiên, bạn copy đoạn code sau đây(có chữ màu xanh), tiếp theo mở file Excel In phiếu thu chi ra/ Vào menu Tool/Macro--->Visual Basic Editor(hoặc bấm Atl+F11)
- Màn hình Visual hiện ra(đen đen đấy), bạn lại vào Menu Insert/ và bấm vào Module
- Một màn hình trắng toát hiện ra, bây giờ bạn hãy Past đoạn code đã copy lúc nãy vào, sau cùng bấm vào Save để lưu lại.
- Cuối cùng, bạn bấm close để đóng cửa sổ Visual Basic Editor này lại trở về Excel
- Lúc bây giờ, tại ô A2(tức là ô mà bạn muốn hiện số tiền bằng chữ) bạn gõ vào công thứ: =VND(A1)
- Lập tức chương trình sẽ tự đọc số tiền bằng số mà bạn gõ vào ô A1
- Tại ô A2(ô hiện số tiền bằng chữ ) bạn hãy chọn font: VNI-TIMES vì đoạn code được viết theo font này.
Lưu ý: Ô A1 và A2 ở đây là tôi lấy ví dụ, khi làm bạn nhớ đổi lại cho đúng địa chỉ theo nhu cầu.
* Đoạn code cần copy(copy đoạn code màu xanh):
Public Function VND(BaoNhieu)
If Val(BaoNhieu) = 0 Then
Ketqua = "Khoâng ñoàng"
Else
If Abs(BaoNhieu) > 1E+15 Then
Ketqua = "Soá quaù lôùn"
Else
If BaoNhieu < 0 Then Ketqua = "Tröø" & Space(1) Else Ketqua = Space(0)
SOTIEN = Format(Abs(BaoNhieu), "###############0.00") '18coät soá 2soá leû
SOTIEN = Right(Space(15) & SOTIEN, 18)
Hang = Array("None", "traêm", "möôi", "gì ñoù")
DONVI = Array("None", "ngaøn tyû", "tyû", "trieäu", "ngaøn", "ñoàng", "xu")
Dem = Array("None", "moât", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chín")
For N = 1 To 6
Nhom = Mid(SOTIEN, N * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If N = 5 Then
Chu = "ñoàng" & Space(1)
Else
Chu = Space(0)
End If
Case ".00", ",00"
Chu = "chaün"
Case Else
S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
Chu = Space(0): Hang(3) = DONVI(N)
For K = 1 To 3
Dich = Space(0): S = Val(Mid(Nhom, K, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(K) & Space(1)
Else
If K = 1 And N > 1 And N < 6 And Val(Mid(SOTIEN, (N - 1) * 3 - 2, 3)) > 0 Then
Dich = "khoâng" & Space(1) & Hang(K) & Space(1)
End If
End If
Select Case K
Case 2 And S = 1
Dich = "möôøi" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(K) & Space(1)
Case 3 And S = 5 And Val(S2) > 2
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If N > 1 And Val(Mid(SOTIEN, (N - 1) * 3 - 2, 3)) > 0 Or (Val(S1) > 0) Then
Dich = "leû" & Space(1)
End If
End Select
Chu = Chu & Dich
Next K
End Select
ViTri = InStr(1, Chu, "möôi moät")
If ViTri > 0 Then Mid(Chu, ViTri, 9) = "möôi moát"
Ketqua = Ketqua & Chu
End If
Next N
End If
End If
VND = UCase(Left(Ketqua, 1)) & Trim(Mid(Ketqua, 2))
End Function
- Đầu tiên, bạn copy đoạn code sau đây(có chữ màu xanh), tiếp theo mở file Excel In phiếu thu chi ra/ Vào menu Tool/Macro--->Visual Basic Editor(hoặc bấm Atl+F11)
- Màn hình Visual hiện ra(đen đen đấy), bạn lại vào Menu Insert/ và bấm vào Module
- Một màn hình trắng toát hiện ra, bây giờ bạn hãy Past đoạn code đã copy lúc nãy vào, sau cùng bấm vào Save để lưu lại.
- Cuối cùng, bạn bấm close để đóng cửa sổ Visual Basic Editor này lại trở về Excel
- Lúc bây giờ, tại ô A2(tức là ô mà bạn muốn hiện số tiền bằng chữ) bạn gõ vào công thứ: =VND(A1)
- Lập tức chương trình sẽ tự đọc số tiền bằng số mà bạn gõ vào ô A1
- Tại ô A2(ô hiện số tiền bằng chữ ) bạn hãy chọn font: VNI-TIMES vì đoạn code được viết theo font này.
Lưu ý: Ô A1 và A2 ở đây là tôi lấy ví dụ, khi làm bạn nhớ đổi lại cho đúng địa chỉ theo nhu cầu.
* Đoạn code cần copy(copy đoạn code màu xanh):
Public Function VND(BaoNhieu)
If Val(BaoNhieu) = 0 Then
Ketqua = "Khoâng ñoàng"
Else
If Abs(BaoNhieu) > 1E+15 Then
Ketqua = "Soá quaù lôùn"
Else
If BaoNhieu < 0 Then Ketqua = "Tröø" & Space(1) Else Ketqua = Space(0)
SOTIEN = Format(Abs(BaoNhieu), "###############0.00") '18coät soá 2soá leû
SOTIEN = Right(Space(15) & SOTIEN, 18)
Hang = Array("None", "traêm", "möôi", "gì ñoù")
DONVI = Array("None", "ngaøn tyû", "tyû", "trieäu", "ngaøn", "ñoàng", "xu")
Dem = Array("None", "moât", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chín")
For N = 1 To 6
Nhom = Mid(SOTIEN, N * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If N = 5 Then
Chu = "ñoàng" & Space(1)
Else
Chu = Space(0)
End If
Case ".00", ",00"
Chu = "chaün"
Case Else
S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
Chu = Space(0): Hang(3) = DONVI(N)
For K = 1 To 3
Dich = Space(0): S = Val(Mid(Nhom, K, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(K) & Space(1)
Else
If K = 1 And N > 1 And N < 6 And Val(Mid(SOTIEN, (N - 1) * 3 - 2, 3)) > 0 Then
Dich = "khoâng" & Space(1) & Hang(K) & Space(1)
End If
End If
Select Case K
Case 2 And S = 1
Dich = "möôøi" & Space(1)
Case 3 And S = 0 And Nhom <> Space(2) & "0"
Dich = Hang(K) & Space(1)
Case 3 And S = 5 And Val(S2) > 2
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If N > 1 And Val(Mid(SOTIEN, (N - 1) * 3 - 2, 3)) > 0 Or (Val(S1) > 0) Then
Dich = "leû" & Space(1)
End If
End Select
Chu = Chu & Dich
Next K
End Select
ViTri = InStr(1, Chu, "möôi moät")
If ViTri > 0 Then Mid(Chu, ViTri, 9) = "möôi moát"
Ketqua = Ketqua & Chu
End If
Next N
End If
End If
VND = UCase(Left(Ketqua, 1)) & Trim(Mid(Ketqua, 2))
End Function