柳 佳 顧士學(xué)
[摘 要]在Excel中運用VBA實現(xiàn)了中文大寫金額轉(zhuǎn)換提高了工作效率
[關(guān)鍵詞]VBA Excel 函數(shù)
[中圖分類號]TD17[文獻標(biāo)識碼]A[文章編號]1007-9416(2009)12-0110-02
在財會上很多情況下,需要從小到大寫金額的轉(zhuǎn)換,雖然我們通過設(shè)置Excel的單元格的特殊格式,可以將數(shù)字轉(zhuǎn)換為中文大寫數(shù)字。但這些方法有的不夠?qū)嵱?有的輸出格式不符合財會規(guī)定。下面我們提出在Excel環(huán)境中運用VBA技術(shù)實現(xiàn)中文大寫金額轉(zhuǎn)換。
1 環(huán)境選擇
Excel 是微軟公司集成辦公軟件Office 中的一個組件,是用戶使用最為廣泛的軟件平臺之一。用其內(nèi)嵌的編程語言VBA進行二次開發(fā)得到的應(yīng)用軟件,既可以使繁瑣、重復(fù)操作自動化,提高工作效率和應(yīng)用水平,同時又不改變Excel原有的界面風(fēng)格、系統(tǒng)功能和操作方式,特別是它的編輯、排版、打印功能。用戶不必經(jīng)過特殊學(xué)習(xí)和培訓(xùn),即可使用,大大降低軟件的使用門檻,提高了軟件的可用性。
2 VBA簡介
Visual Basic for Applications(簡稱VBA)是新一代標(biāo)準(zhǔn)宏語言,它具有跨越多種Office 應(yīng)用軟件并且控制應(yīng)用軟件對象的能力。VBA提供了面向?qū)ο蟮某绦蛟O(shè)計方法,提供了比較完整的程序設(shè)計語言。Office就不僅僅是應(yīng)用程序,更是一個開發(fā)平臺,可以利用VBA對Office 進行二次開發(fā),擴展其功能。
VBA具有以下特征:
2.1 VBA 是一種解釋性語言
由于 VBA 是在VISUAL BASIC 的框架上建立起來的因此它也繼承了Visual Basic 作為一種解釋性語言的特性
2.2 VBA 是一種面向?qū)ο蟮恼Z言
作為新一代的高級語言VBA 提供了對面向?qū)ο蟮某绦蛟O(shè)計方法的支持實際上VBA 的工作過程就是對各種對象包括VISUAL BASIC對象和OFFICE對象進行操作的過程
2.3 VBA支持可視化的編程環(huán)境
VBA 提供了新穎的可視化設(shè)計工具巧妙地將Windows 界面設(shè)計的復(fù)雜性封裝起來程序開發(fā)人員不必再為界面設(shè)計而編寫大量程序代碼僅需采用現(xiàn)有工具按設(shè)計者要求的布局在屏幕上畫出所需界面并為各圖形對象設(shè)置屬性即可。
3 問題實現(xiàn)
進入VBA編輯環(huán)境,建立一個模塊,在模塊中定義一個名為ChangeLU的函數(shù),代碼如下:
Function ChangeLU(XXJE As String)
SL = "零壹貳叁肆伍陸柒捌玖"
JE = "分角元拾佰仟萬拾佰仟億"
M = Replace(Trim(XXJE), ".", "")
N = Len(M)
J = N: DXJE = ""
For I = 1 To N
W = Val(Mid(M, I, 1)) '
If W > 0 Then
DXJE = DXJE + Mid(SL,W +1, 1)
DXJE = DXJE + Mid(JE, J, 1)
ElseIf W = 0 Then
If Mid(JE, J, 1) = "萬" Then
DXJE = DXJE + Mid(JE, J, 1)
ElseIf Mid(JE, J, 1) = "元" Then
If Len(M) = 3 Then
DXJE = DXJE + "零"
End If
DXJE = DXJE + "元"
If Val(Mid(M, I + 1, 1)) > 0 And Len(M) > 3 Then
DXJE = DXJE + Mid(SL, W + 1, 1)
End If
ElseIf Val(Mid(M, I + 1, 1)) > 0 Then
DXJE = DXJE + Mid(SL, W + 1, 1)
ElseIf Val(Mid(M, I)) = 0 Then
If J >= 7 Then DXJE = DXJE + "萬"
If J >= 3 Then DXJE = DXJE + "元"
DXJE = DXJE + "整"
Exit For
End If
End If
J = J - 1
Next
ChangeLU = DXJE
End Function
注意:函數(shù)的調(diào)用參數(shù)小寫金額要求必須是文本型,而且一定要有兩位小數(shù)。
4 函數(shù)的應(yīng)用
函數(shù)在Excel應(yīng)用程序定義之后,就可以像內(nèi)部函數(shù)一樣調(diào)用。比如,在任意一個工作表的B3單元格輸出公式“=changeLu(A3)”,然后用填充句柄向下填充若干行,只要在A列輸入小寫金額,B列會立即顯示對應(yīng)的大寫金額。(注意:A列單元格的格式要設(shè)置為“數(shù)字作為文本處理”,輸入的數(shù)值要帶有兩位小數(shù)。)
[參考文獻]
[1] 李政.Office XP 編程基礎(chǔ)與開發(fā)實例[M].北京:國防工業(yè)出版社,2001,(10).