上一個章節有提到如何在日記帳中,用下拉選單來選擇會計科目,這個部份很重要,因為接下來的損益表、資產負債表及 T 型帳戶都跟會計科目有關。用下拉選單主要目的是要防止會計科目輸入錯誤。
接下來我們要開始處理工作頁的準備部分,在準備報表的時候,我們會先把前面的資料刪除,並移除多餘的工作頁。這些都要靠 VBA 來完成。
下面程序 Sub DeleteSheet(),就是要移除自動產生出來的工作頁 (主要是 T 型帳戶工作頁),並清除之前產生的報表內容。首先,固定的工作頁有下列幾個,其用途敘述如下:
1. 日記帳:提供輸入日記帳的頁面,其中下拉式 會計科目 選單也在此作業。
2. 格式:主要提供 T 型帳戶的標準格式。
3. 工作底稿:輸出工作底稿的頁面。
4. 損益表:輸出損益表的頁面。
5. 資產負債表:輸出資產負債表的頁面。
6. 會計科目:儲存所有會計科目的頁面,所有報表的會計帳分類,均以此為主。
7. 帳平衡:這是計算所有會計科目是否平衡的頁面,有點接近工作底稿,純粹是一種除錯報表,輔助會計帳是否平衡。
上述工作頁均有其特定功能,所以不能刪除。其餘,會透過 VBA 將工作頁刪除。VBA 程式碼如下所式:
===============================================
Sub DeleteSheet()
Dim I As Integer, J As Integer
Application.DisplayAlerts = False
For I = Sheets.Count To 1 Step -1
If (Sheets(I).Name <> "日記帳") And (Sheets(I).Name <> "格式") And (Sheets(I).Name <> "工作底稿") And (Sheets(I).Name <> "損益表") And (Sheets(I).Name <> "會計科目") And (Sheets(I).Name <> "資產負債表") And (Sheets(I).Name <> "帳平衡") Then
Sheets(I).Delete
End If
Next I
Sheets("工作底稿").Select
Cells.Select
Selection.ClearContents
Sheets("損益表").Select
Cells.Select
Range("A19").Activate
Selection.ClearContents
Sheets("資產負債表").Select
Cells.Select
Range("A19").Activate
Selection.ClearContents
Sheets("帳平衡").Select
Cells.Select
Range("A19").Activate
Selection.ClearContents
Application.DisplayAlerts = True
End Sub
===============================================
下面是針對上述程式碼的簡介:
第一段:
"Application.DisplayAlerts = False"
表示暫停顯示 Excel 的警告提醒標示,原因是:當我們要刪除工作頁時,Excel 會彈出視窗詢問是否要執行,這部分我們將暫時停止這種警告提醒。
第二段:
For I = Sheets.Count To 1 Step -1
If (Sheets(I).Name <> "日記帳") And (Sheets(I).Name <> "格式") And (Sheets(I).Name <> "工作底稿") And (Sheets(I).Name <> "損益表") And (Sheets(I).Name <> "會計科目") And (Sheets(I).Name <> "資產負債表") And (Sheets(I).Name <> "帳平衡") Then
Sheets(I).Delete
End If
Next I
上面程式碼會跑回圈列出所有工作頁的名稱,除了名稱為固定的工作頁 (日記帳、格式、工作底稿....) 外,其餘一律刪除。
第三段:
Sheets("工作底稿").Select
Cells.Select
Selection.ClearContents
Sheets("損益表").Select
Cells.Select
Range("A19").Activate
Selection.ClearContents
Sheets("資產負債表").Select
Cells.Select
Range("A19").Activate
Selection.ClearContents
Sheets("帳平衡").Select
Cells.Select
Range("A19").Activate
Selection.ClearContents
上述程式碼會清除工作頁 工作底稿、損益表、資產負債表及帳平衡 的內容,以利新報表的填入。
第四段:
Application.DisplayAlerts = True
當主要工作執行完畢後,讓 Excel 的警告視窗恢復提醒功能。