Đổi số ra chữ trong Excel
20:38 |Đổi số ra chữ trong Excel
1. Khởi động
Excel, tạo một workbook mới (hoặc dùng Book1 như mặc định). Chọn Tools\ Macro\
Visual Basic Editor để mở cửa sổ soạn thảo VBA. Trong cửa sổ Project Explorer
(nếu không thấy thì chọn View\ Project Explorer để mở nó), chọn VBAProject
(Book1). Chọn Insert\ Module để thêm một module vào workbook.
2. Gõ nội dung
hàm đổi số ra chữ SoRaChu(N) như đoạn mã 1 vào module mới tạo.
Đoạn mã 1
Function SoRaChu(ByVal NumCurrency As Currency) As String
If NumCurrency = 0 Then SoRaChu = "Không đồng" Exit Function End If If NumCurrency > 922337203685477# Then ‘ Số lớn nhất của loại CURRENCY SoRaChu = "Không đổi được số lớn hơn 922,337,203,685,477" Exit Function End If '------------------------------------------------- Static CharVND(9) As String, BangChu As String, I As Integer Dim SoLe, SoDoi As Integer, PhanChan, Ten As String CharVND(1) = "một" CharVND(2) = "hai" CharVND(3) = "ba" CharVND(4) = "bốn" CharVND(5) = "năm" CharVND(6) = "sáu" CharVND(7) = "bảy" CharVND(8) = "tám" CharVND(9) = "chín" '------------------------------------------------- SoLe = Int((NumCurrency - Int(NumCurrency)) * 100) '2 kí số lẻ I = 1 PhanChan = Trim$(Str$(Int(NumCurrency))) While Len(PhanChan) > 0 Select Case I Case 1 'Dong Dong = Val(Right$(PhanChan, 3)) PhanChan = Left$(PhanChan, Len(PhanChan) - Len(Trim$(Str$(Dong)))) Case 2 'Ngan Ngan = Val(Right$(PhanChan, 3)) PhanChan = Left$(PhanChan, Len(PhanChan) - Len(Trim$(Str$(Ngan)))) Case 3 'Trieu Trieu = Val(Right$(PhanChan, 3)) PhanChan = Left$(PhanChan, Len(PhanChan) - Len(Trim$(Str$(Trieu)))) Case 4 'Ty Ty = Val(Right$(PhanChan, 3)) PhanChan = Left$(PhanChan, Len(PhanChan) - Len(Trim$(Str$(Ty)))) Case 5 'Ngan Ty NganTy = Val(Right$(PhanChan, 3)) PhanChan = Left$(PhanChan, Len(PhanChan) - Len(Trim$(Str$(NganTy)))) End Select I = I + 1 Wend If NganTy = 0 And Ty = 0 And Trieu = 0 And Ngan = 0 And Dong = 0 Then BangChu = "không đồng " I = 5 Else BangChu = "" I = 0 End If While I <= 5 ‘ Bắt đầu đổi Select Case I Case 0 SoDoi = NganTy Ten = "ngàn tỷ" Case 1 SoDoi = Ty Ten = "tỷ" Case 2 SoDoi = Trieu Ten = "triệu" Case 3 SoDoi = Ngan Ten = "ngàn" Case 4 SoDoi = Dong Ten = "đồng" Case 5 SoDoi = SoLe Ten = "xu" End Select If SoDoi <> 0 Then Tram = Int(SoDoi / 100) Muoi = Int((SoDoi - Tram * 100) / 10) DonVi = (SoDoi - Tram * 100) - Muoi * 10 BangChu = BangChu + IIf(Tram <> 0, CharVND(Tram) + " trăm ", "") If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then BangChu = BangChu + "lẻ " Else If Muoi <> 0 Then BangChu = BangChu+IIf(Muoi <> 0 And Muoi <> 1,CharVND(Muoi)+" mươi ","mười ") End If End If If Muoi <> 0 And DonVi = 5 Then BangChu = BangChu + "lăm " + Ten + " " Else If Muoi <> 0 And Muoi <> 1 And DonVi = 1 Then BangChu = BangChu + "mốt " + Ten + " " Else BangChu = BangChu + IIf(DonVi <> 0, CharVND(DonVi) + " " + Ten + " ", Ten + " ") End If End If Else BangChu = BangChu + IIf(I = 4, "đồng ", "") End If I = I + 1 Wend If SoLe = 0 Then BangChu = BangChu + "chẵn" End If Mid$(BangChu, 1, 1) = UCase$(Mid$(BangChu, 1, 1)) SoRaChu = BangChu End Function |
Bạn để ý, hàm
SoRaChu có phân biệt cách đọc số 1 (một hay mốt), 5 (năm hay lăm), mươi hay mười
và chỉ đổi số có trị lớn nhất là 922,337, 203, 685, 477. Các chữ Việt có dấu
trong đoạn mã 1 có mã Unicode.
3. Chuyển sang
cửa sổ Excel để kiểm tra hàm bằng cách thử gõ vào ô bất kỳ, ví dụ:
=SoRaChu(922337203,34). Nếu êm xuôi thì chuyển sang bước kế tiếp.
4. Mô tả hàm để
chọn chính xác tên hàm khi bạn sử dụng công cụ Past Function. Trong cửa sổ
Excel, chọn menu Tools\ Macro\ Macros để hiển thị hộp thoại Macro. Gõ tên hàm
SoRaChu vào ô Macro name, rồi bấm Options để mở tiếp hộp thoại Macro Options,
gõ nội dung mô tả hàm vào ô Description, bấm OK để đóng hộp thoại Macro
Options, cuối cùng bấm Cancel để đóng hộp thoại Macro.
5. Ghi workbook
lên đĩa thành tập tin TienBac.XLA (ví dụ). Bạn phải đặt tập tin này đúng chỗ để
mỗi lần Excel khởi động sẽ nạp nó tự động.
Đối với Excel XP trên Windows XP:
C:\Documents and Settings\UserName\Application Data\Microsoft\AddIns
Đối với Excel 2000 trên Windows 98:
C:\Windows\Application Data\Microsoft\AddIns
Đối với Excel 97 trên Windows 98:
C:\Program Files\Microsoft Office\Office\Library
Đóng Excel mà không cần ghi lại các thay đổi trên Book1.
Đối với Excel XP trên Windows XP:
C:\Documents and Settings\UserName\Application Data\Microsoft\AddIns
Đối với Excel 2000 trên Windows 98:
C:\Windows\Application Data\Microsoft\AddIns
Đối với Excel 97 trên Windows 98:
C:\Program Files\Microsoft Office\Office\Library
Đóng Excel mà không cần ghi lại các thay đổi trên Book1.
6. Dùng Windows
Explorer để thêm mô tả cho add-in bằng cách bấm chuột phải trên tên tập tin
TienBac.XLA, chọn mục Properties để mở hộp thoại Properties, chọn thẻ Summary để
gõ mô tả vào ô Comments, gõ tên của add-in vào ô Title. Chọn nút OK để chấp nhận
các thông tin vừa nêu.
7. Khởi động lại
Excel, cài đặt add-in vừa tạo cho Excel bằng cách chọn trình đơn Tools\ Add-Ins
để mở hộp thoại Add-Ins, chọn tên add-in của ta trong danh sách Add-Ins
available, rồi bấm OK.
Từ đây trở về
sau, mỗi lần mở Excel, bạn đương nhiên dùng được hàm SoRaChu trong add-in
TienBac.XLA.