上一個章節有提到如何在日記帳中,用下拉選單來選擇會計科目,這個部份很重要,因為接下來的損益表、資產負債表及 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 的警告視窗恢復提醒功能。