[摘 要] 利用Word的宏作為工具,通過編制程序,實現雙倍余額遞減法折舊額的自動計算,并將計算結果顯示在Word環境的表格中。
[關鍵詞] Word環境;雙倍余額遞減法;折舊
[中圖分類號]F275;F270.7[文獻標識碼]A[文章編號]1673-0194(2007)04-0046-03
利用Excel電子表格處理軟件來計算雙倍余額遞減法下的折舊,不少學者進行了很多探索,但這些方法一般以一個固定的值作為計算的模式,缺乏普遍性。針對這一問題,本文應用Word中VBA編程以宏命令的方式自動進行折舊計算,可以讓用戶進行初始數據的輸入,然后自動輸出各年度的計算結果。
一、雙倍余額遞減法的特點與折舊計算
雙倍余額遞減法是在不考慮固定資產凈殘值的情況下,根據每期期初固定資產賬面余額和雙倍的直線法折舊率計算折舊的一種方法。其特點是:(1)折舊基數是固定資產凈值而不是原值。(2)折舊率按同等條件下直線法(假定凈殘值為零)折舊率的雙倍計算。(3)由于沒有考慮固定資產凈殘值,為避免提不完折舊,到一定年限后需改用直線法。根據現行會計制度規定,在達到固定資產使用年限的前兩年內改為直線法。
設固定資產的原始價值為A,預計凈殘值率為r,折舊年限為n,采用現行雙倍余額遞減法計提的折舊額,見表1。

二、應用宏實現折舊自動計算
宏是一系列組合在一起的 Word 命令和指令,它們形成一個命令,以實現任務執行的自動化。雙倍余額遞減法首先讓用戶輸入A,r和n三個值,計算后的結果形式如表1,第一行為3個字段,以下各行為各字段的值,以下詳細介紹應用程序實現的方法。
1. 接受用戶輸入的數據,代碼如下:
A = Val(InputBox(“輸入A的值”,“計算折舊表”))
r = Val(InputBox(“輸入預計凈殘值率為r”,“計算折舊表”))
n = Val(InputBox(“輸入折舊年限n”,“計算折舊表”))
If n < 2 Then ‘如果年數小于1則不輸出表
Exit Sub
End If
2. 輸出用戶輸入的3個值,以使用戶可以查看已輸入的值,同時增加表的實用性#65377;
ss = “A=” Trim(Str(A)) “;r=” Trim(Str(r))“;n=” Trim(Str(n))
Selection.TypeText Text:=ss‘輸出A#65380;r和n#65377;
Selection.TypeParagraph
3. 下兩語句輸出一個n+1行3列的表#65377;
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=n + 1, NumColumns:= _
3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ wdAutoFitFixed
With Selection.Tables(1)
.Columns.PreferredWidth = CentimetersToPoints(5)
.AutoFormat Format:=wdTableFormatSimple1, ApplyBorders:=True, _
ApplyShading:=True, ApplyFont:=True, ApplyColor:=True, _
ApplyHeadingRows:=True, ApplyLastRow:=False, ApplyFirstColumn:=True, _ ApplyLastColumn:=False, AutoFit:=True
End With
4. 表格中第一行中輸入字段名
Selection.TypeText Text:=“年”
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:=“折舊計算”
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:=“賬面價值”
5. 第2行到n-1行輸出第1年到n-2年的折算值#65377;由于第一年到到n-2年之間具有一定的規律性,這里用一個循環語句來實現,具體代碼如下:
For ii = 1 To n - 2
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=2
Selection.TypeText Text:=Trim(Str(ii))
Selection.MoveRight Unit:=wdCharacter, Count:=1
p1 = A * (1 - 2 / n) ^ (ii - 1) * 2 / n
p1 = Int(p1 * 100 + 0.5) / 100
Selection.TypeText Text:=Trim(Str(p1))
Selection.MoveRight Unit:=wdCharacter, Count:=1
p2 = A * (1 - 2 / n) ^ ii
p2 = Int(p2 * 100 + 0.5) / 100
Selection.TypeText Text:=Trim(Str(p2))
Next ii
6. 雙倍余額遞減法中,最后兩年在計算上與前n-2年存在差異,因此提出來獨立計算#65377;
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=2
Selection.TypeText Text:=Trim(Str(n - 1))
Selection.MoveRight Unit:=wdCharacter, Count:=1
p1 = (A*(1 - 2 / n) ^ (n - 2) - A*r) / 2
p1 = Int(p1*100 + 0.5) / 100
Selection.TypeText Text:=Trim(Str(p1))
Selection.MoveRight Unit:=wdCharacter, Count:=1
p2 = (A*(1 - 2 / n) ^ (n - 2) + A*r) / 2
p2 = Int(p2 *100 + 0.5) / 100
Selection.TypeText Text:=Trim(Str(p1))
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveLeft Unit:=wdCharacter, Count:=2
Selection.TypeText Text:=Trim(Str(n))
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:=Trim(Str(p1))
Selection.MoveRight Unit:=wdCharacter, Count:=1
p2 = Int(A*r*100 + 0.5) / 100
Selection.TypeText Text:=Trim(Str(p2))
三、應用舉例
在Word中可以把宏生成一個工具欄菜單項,點擊該菜單項就可以運行該宏。具體方法如下:“工具”→“自定義” →“命令”→在類別中點擊“宏”→在“命令”欄中選擇宏“”并按住鼠標左鍵拖動到工具欄中,并點擊右鍵,在彈出式菜單的“命名”欄中更改相應的名字。如把它命名為“雙余計算”。
[例] 某設備原價為50 000元,使用年限為5年,預計凈殘值為2 000元。用雙倍余額遞減法計算各年折舊額。
點擊工具欄中“雙倍余額遞減法折舊計算表”工具菜單,分別在輸入對話框中輸入A=50 000,n=5,r=2 000/
50 000 = 4% = 0.04。按回車鍵便可得到下述折舊計算表:
A=50 000; r=0.04; n=8

四、結 語
通過Word的宏可以很方便地計算出雙倍余額遞減法各年的折舊額,并在Word中列出計算后的表格,通過上述計算過程不難得出,雙倍余額遞減法各年折舊額成等比關系(最后兩年除外),運用上述計算公式及程序計算某年折舊額既快速簡捷,又能保證計算結果的準確性。
主要參考文獻
[1] 全國會計專業技術資格考試領導小組辦公室.中級會計實務(一)[M]. 北京:中國財政經濟出版社,2001.
[2] [美]Matthew Harris. Visual Basic for Applications——VBA自學教程[M]. 任曉峰等譯. 北京:電子工業出版社,1995.