ACCESS/VBA 業務逆向工程 · CKEditor 可直接使用版
把國稅不服審判所的「處理狀況等管理系統」掰碎講清楚
從一張審查請求書進來,到補正、答辯、爭點整理、調查、合議、法規審查、裁決、発送與送達:這套 VBA 到底在替誰管什麼?
分析對象:処理状況等管理システム.accdb(主畫面標示「2025版」)|分析基準日:2026-09-02
閱讀標記:先把「確定」和「推定」分開
| 【官方】 | 可在國税不服審判所、國税庁或 e-Gov 的現行公開資料中核對。 |
| 【程式】 | 直接來自本資料庫的欄位說明、查詢條件、表單事件或 VBA 實作。 |
| 【推定】 | 依欄位名稱、前後流程與報表用途推斷;若要重建系統,必須找業務人員或內部《提要》確認。 |
一分鐘結論:這套系統其實是什麼?
它不是「自動判案系統」,而是「案件台帳+進度控制表+統計報表工廠」。
它把一件審查請求拆成很多可管理的數字與日期:誰提出、針對什麼處分、由哪個支部與合議體處理、答辯書何時要、證據何時收到、爭點何時確認、何時調查與合議、法規審查走到哪裡、何時裁決與寄出,以及這件在統計上到底算幾個「實件」和幾個「延件」。
- 一個現實中的申訴,不一定只對應一筆資料。一份請求書可能包含多個稅目、年度或原處分,所以系統會生成一組互相關聯的受付番号。
- 同一個受付番号,又被橫向切成三張一對一資料表。基本資訊、審理活動日期、進行管理/備忘各放一張表。
- 核心不是「狀態」而是大量里程碑日期。系統用「答求、答受、初合、議決、法了、裁決、発送……」判斷進度與產生報表。
- 大量報表是它真正的產出。它按支部、稅目、事件種、結果、處理期間、未結階段、延誤原因等輸出管理資料。
- 很多規則只是表單層警告,不是不可突破的資料約束。日期矛盾可以按「是」繼續保存;部分原本設計的檢查與彙總更新已被註解停用。
我到底拆了多少東西?
【程式】資料庫以停用巨集與啟動程式碼的方式唯讀開啟,沒有執行 AutoExec,也沒有修改原檔。盤點結果如下:
| 資料表 | 查詢 | 表單 | 報表 | 巨集 | VBA 模組 |
|---|---|---|---|---|---|
| 82 | 727 | 6 | 694 | 3 | 6 |
694 張報表不代表 694 套不同業務;其中大量是同一統計按支部、稅目、事件種、實件/延件、明細/合計、橫式/縱式等變體展開。
先不看程式:一件國稅審查請求正常會怎麼走?
先把角色記住,後面所有欄位就不會再像天書:
| 角色 | 白話意思 | 在系統中留下什麼 |
|---|---|---|
| 審査請求人 | 覺得稅務處分不對,來請求取消或變更的人。 | 姓名、共同請求人、代表人、地址、電話、代理人、反論書、意見書、口頭意見、閱覽/謄寫等。 |
| 原処分庁 | 做出原來稅務處分的稅務署長、國稅局長等。 | 答弁書、意見書、回答書、資料提出、閱覽/謄寫等。 |
| 国税不服審判所 | 站在雙方之間,以第三者立場調查、審理並作成裁決的機關。 | 形式審查、合議體、爭點、調查、審理計畫、議決、法規審查、裁決與送達。 |
【官方】國税不服審判所公開的流程可以壓成下面十步。官方完整說明見「審理と裁決」:
- 提出請求:原則上可直接向國税不服審判所提出,也可能在再調查請求後提出。一般期限是知道處分之翌日起 3 個月內;若經再調查決定,通常為送達翌日起 1 個月內。精確例外須以現行法與官方說明為準。
- 收件與形式審查:先看請求書是否具備必要記載、是否在期限內、代理權文件是否齊全;能補的就要求「補正」。明顯不適法且不能補正的,可不進實體審理而「却下」。
- 向原處分機關要答弁書:原処分庁說明它要維持什麼處分、事實與法律理由是什麼;副本送給請求人。
- 指定合議體:指定 1 名担当審判官及至少 2 名参加審判官。担当審判官成為雙方提交主張、證據、程序申請的主要窗口。
- 整理爭點與排計畫:把雙方真正爭什麼、已交什麼、還缺什麼、下一步何時做整理清楚,必要時交付「審理の状況・予定表」與「争点の確認表」。
- 雙方攻防與證據:請求人可交反論書與證據;原処分庁及參加人可交意見書;審判所也可要求回答、文件或補充說明。
- 程序權利:請求人或參加人可申請口頭意見陳述;雙方可在法定範圍內請求閱覽或取得資料副本。口頭意見陳述時,請求人可經担当審判官許可向原処分庁提問。
- 職權調查:担当審判官等可詢問、檢查、要求帳簿文件、留置物件或委託鑑定,用來釐清事實。
- 審理終結、合議與議決:調查完畢後終結審理;合議體以過半數形成「議決」。議決是合議體的結論,裁決則是審判所長依議決作成的正式行政判斷,兩者不是同一個日期。
- 裁決、寄送與可能訴訟:裁決書謄本通知請求人與原処分庁。請求人仍不服時可依法提起訴訟;原処分庁受裁決拘束,不能因不服而起訴。
裁決結果:代碼 0~6 到底在說什麼?
| 代碼 | 系統名稱 | 白話判斷 |
|---|---|---|
| 0 | 未済 | 尚未結案。 |
| 1 | 全部取消し | 請求人要求取消的部分全部被接受。 |
| 2 | 一部取消し | 只有一部分主張被接受。 |
| 3 | 棄却 | 程序可以審,但實體審理後不採納請求人的主張。 |
| 4 | 却下 | 因逾期、沒有可爭執的處分、無資格、未依補正要求處理等程序問題,不進入或不能維持實體審理。 |
| 5 | 取下げ | 請求人撤回請求。 |
| 6 | 変更他 | 原處分被變更,或被系統歸到「其他」的內部分類。 |
【官方】裁決不得把請求人處境改得比原處分更不利;裁決對有關行政機關有拘束力。完整定義可核對國税不服審判所的裁決態樣與拘束力說明。
【程式】若態樣為全部取消或一部取消,系統會要求選「取消事由」;若為却下或取下げ,會要求對應理由。取消案件且稅目代碼小於 90 時,還要求輸入本稅與加算稅的取消金額。這些條件是本程式的統計口徑,不應倒推成法律本身的分類。
全系統最難的一關:實件、延件、総延、総総到底是什麼?
先用一句人話:同一個人遞交的一份請求書,可能同時挑戰好幾個稅目、年度或處分;管理上想把它看成一組,但統計上又必須分別計件。所以系統同時保存三層數量。
| 層級 | 對應欄位 | 白話 |
|---|---|---|
| 請求書/整組 | 請求書、関連受付番号、総総実、総総延 |
一份請求書或同一請求人下的一組事件。首筆資料的 請求書=1,而且其関連受付番号必須等於自己的受付番号。 |
| 實件 | 実=1、総延 |
一個管理上算作「一件」的實質事件。其代表行放 実=1,並以 総延記錄這個實件下面一共有幾個延件。 |
| 延件/最小計數行 | 延=1 |
每一個要獨立計數的處分/事案資料行。自動複寫出的從屬行會設 実=0、総延=0、延=1。 |
用一個完全虛構的例子
假設甲公司用同一份請求,爭執「法人稅兩個年度」和「消費稅一個處分」。管理上是 2 個實件,統計最小單位是 3 個延件:
| 受付番号(虛構) | 関連受付番号 | 請求書 | 実 | 総延 | 延 | 意思 |
|---|---|---|---|---|---|---|
1234-56-0001 |
1234-56-0001 |
1 | 1 | 2 | 1 | 整組首行,也是法人稅實件的第一個延件;首行另存 総総実=2、総総延=3。 |
1234-56-0002 |
1234-56-0001 |
0 | 0 | 0 | 1 | 法人稅實件的第二個延件,由程式複寫生成。 |
1234-57-0001 |
1234-56-0001 |
0 | 1 | 1 | 1 | 另一個消費稅實件,仍掛在同一份請求書的首行。 |
上表是依欄位說明與複寫演算法製作的教學例,並非資料庫中的真實案件。
【官方】國税庁歷史統計資料說明,件數原則上按處分或事案分別計 1 件;本稅與特定加算稅同時爭執時,可能合併按 1 件計。這就是為什麼畫面上人的直覺「我只申訴一次」與統計數量可以不同。可參考國税庁統計編的計件註記。
同一受付番号,為什麼要住在三張表?
【程式】三張核心表目前都各有 2,107 筆,以 受付番号一對一連結。關聯同時啟用唯一性、更新串聯與刪除串聯。把它想成一張太寬的案件卡被剪成三頁:
| 資料表 | 欄位數 | 負責的業務 |
|---|---|---|
事績処理テーブル(情報) |
150 | 人、組織、稅目、原處分、分類、件數、處理結果、取消金額、代理與程序申請、承辦人、公表與重要案件等。 |
事績処理テーブル(日付(情報)) |
117 | 面談、資料要求、答弁/反論/意見/回答、爭點表、審理狀況予定表、本部照會、閱覽、口頭意見、調查計畫與實施等活動日期。 |
事績処理テーブル(日付(進行管理)・メモ) |
142 | 從請求到送達的主時間軸、當初/修正計畫、進度、延誤原因、今後方針、事案概要,以及每個日期是否禁止從關聯首行同步的 F 旗標。 |
受付番号
↓ 同一鍵值
資訊 150 欄 審理活動 117 欄 進度/備忘 142 欄
刪除為什麼危險?因為首表是父表:刪除資訊表的一個受付番号,另外兩表同號資料會被串聯刪除;若刪的是關聯組首行,刪除表單還可能先刪整組資訊資料。
還有一條「暫定版」支線:事績処理3有 51 個欄位,搭配 暫定版補完入力表單及報告資料建立查詢,追蹤國税通則法第 96/97 條相關資料提出節點;但本快照為 0 筆,名稱也明示「暫定版」。因此它不是目前 2,107 筆核心資料的第四頁,應視為尚待確認是否啟用的試行/補充模型。
主輸入畫面的三個頁籤,各自在問什麼?
【程式】主表單 事績処理入力有三頁,名稱正好對應三張核心表。它不是要操作員一次填完 409 個欄位,而是在案件生命週期中不斷補日期、結果與備忘。
第一頁:情報——「這是誰的什麼案件?」
- 識別與聯絡:支部、受付番号、関連受付番号、請求人、共同請求人、法人代表者、郵遞區號、地址、電話、代理人、補佐人。
- 案件性質:稅目、事件種、初始/變更/再次變更的事件處理區分、變更日期與理由、爭點番号、國際交易與國際爭點、評價代碼。
- 原處分來源:局部課、本支所、原処分庁、受理態樣、收件路徑、併合/分離態樣、青色/白色申告、年分、原處分種類。
- 計件與關聯:請求書、実、総延、延、総総実、総総延、継続管理。
- 特殊管理:情報共有事件、本部報告日期、調整、審理留保、再開、重要案件、公表適否。
- 處理結果:裁決番号、處理態樣、取消/却下/取下理由、本稅與加算稅取消金額。
- 程序權利:口頭意見陳述、閱覽/謄寫、徵收猶予、差押解除、發問權、出席、審理程序意見聽取。
- 承辦與審查:部、部門、担当審判官、参加審判官 1/2、分担者、法審部門、法規審查、形式審查、事件主任。
- 本人確認:法人番号確認、個人番号確認、個人身元確認。官方也說明,含 My Number 的請求書須附相應確認資料。
- 副本交付:最多五輪謄寫/交付,逐輪保存對象特定書收件、請求書收件、頁數、費用、納付、交付與排除天數。
第二頁:日付(情報)——「雙方與審判所做過哪些程序活動?」
- 面談種類、預定日、實施日、出席者,以及文件/物件的預り與返却。
- 三輪要求書類:要求什麼、何時要求、期限、何時收到。
- 「審理の状況・予定表」最多三輪,分別記錄交付給請求人與原処分庁的日期。
- 「争点の確認表」最多三輪,分別追蹤雙方的交付日期。
- 本部照會與回答、一般文件要求/收件/寄送。
- 反論書、請求人意見書(多輪)、原処分庁意見書(多輪)、雙方回答書:各有要請日、提交期限、收件日。
- 参加人意見、釈明陳述録取書、面談、口頭意見陳述、閱覽/副本交付、審理程序意見聽取。
- 最多五輪調查的計畫日、實施日與內容;另有遮蔽處理、數位相機等實務欄位。
第三頁:日付(進行管理)・メモ——「現在走到哪裡,接下來怎麼辦?」
- 完整主時間軸:請求、收件、補正、答辯、分案、指定、着手、合議、審理終結、議決、法審、返戻、再開、決裁、裁決、発送、送達。
- 七個核心節點的當初計畫與修正計畫:答弁書要求、答弁書收受、當初合議、議決、法審了、裁決、発送。
- 文字備忘:進捗狀況、第 96 條資料未提出理由、特記事項、遲延理由、今後處理方針、各種備考、事案概要。
- 大量以
F結尾的旗標,用來決定關聯首行更新時,此欄是否要同步到從屬行。
「答求、初合、法了」是什麼?主時間軸全翻譯
下面先給能從官方流程或程式前後文確定的白話意思;帶「推定」者是內部縮寫,程式沒有正式字典,重建前必須請業務確認。
| 階段 | 欄位 | 白話解釋 |
|---|---|---|
| 提出與收件 | 請求 |
審查請求日。 |
収受 |
審判所收件日,通常是處理期間的起點。 | |
収調 |
【程式】調整後收件日;報表一律優先用它,空白才用収受。它會改變經過期間計算。 | |
補求 |
要求補正/補充欠缺。 | |
補完 |
補正完成。 | |
| 答弁 | 答求 |
向原処分庁要求答弁書。 |
答限 |
答弁書提出期限。 | |
答受 |
收到答弁書。 | |
答弁書送付 |
把答弁書副本送給請求人。 | |
| 內部分案與開始 | 事件回付 |
事件在內部回付/移交。 |
形回 |
【推定】形式審查相關的回付節點。 | |
予担回 |
【推定】預定担当/預備分派相關回付節點。 | |
配付 |
分配至承辦部門或人員。 | |
指定 |
担当審判官與参加審判官的正式指定。 | |
着手 |
承辦開始實質處理。 | |
| 調查、合議與終結 | 初合 |
初次合議/當初合議。 |
中間合議 |
調查途中由合議體檢視爭點與方向。 | |
調査終了 |
調查活動完成。 | |
議決予定 |
預計形成合議結論的日期。 | |
終合 |
【推定】最終合議節點。 | |
審理終結/終結通知 |
審理程序終結及通知。官方說明:終結後,原則上不能再做反論書/證據提出、口頭意見申請、閱覽或副本交付請求等程序行為。 | |
議決 |
合議體以過半數形成的結論,是裁決的基礎。 | |
文合 |
【推定】裁決文書/文案的合議或確認節點。 | |
| 法審、返工與再開 | 一次担当/二次担当 |
法規審查中的一次、二次承辦節點。 |
法審チェック |
法規審查檢查。 | |
三次受理 |
第三階段受理/確認節點。 | |
法回 |
【推定】送交或回付法規審查。 | |
法了予定 |
預計法規審查完成日。 | |
返戻 |
審查後退回修正。 | |
審理再開/再開通知 |
先前終結的審理重新打開並通知。 | |
再終合/再終結/再終結通知 |
重新合議、再次終結及再次通知。 | |
再議/再法 |
再次議決/再次送法規審查。 | |
法了 |
【程式前後文】法規審查完成。 | |
| 成文、決裁與對外 | 浄書回付/浄書終了 |
正式文書清稿流程的回付與完成。 |
次席回付/次席決裁 |
送次席審核與完成決裁。 | |
所長回付/所長決裁 |
送所長審核與完成決裁。 | |
裁決 |
審判所長作成正式裁決。 | |
発送 |
裁決書謄本等寄出。若干未結/處理期間查詢以此而非裁決日當作操作上的完成點。 | |
送達日(請求人/原処分庁) |
雙方實際被送達的日期。 | |
訴訟提起日/判決日 |
裁決後進入司法程序時的追蹤日期。 |
操作員怎麼用:搜尋、新增、更新、複寫、刪除
1.先搜尋,不允許「什麼都不填」
搜尋表單可按支部、受付番号、請求人、稅目、請求/収受/裁決日期區間、関連受付番号篩選。三組日期都檢查「自 ≤ 至」。受付番号與請求人使用 Access 的 Like,程式本身沒有自動在前後加萬用字元,所以一般輸入等同精確比對;使用者自己輸入萬用字元時才可能模糊搜尋。
結果列顯示支部、受付番号、請求人、稅目、請求日、収受日、裁決日、実、総総延與関連受付番号。從這裡進入更新、新增、關聯複寫或刪除。
2.新增:先建三張表,再依総延製造延件
- 使用者確認新增。
- 跑一般必填、條件必填與日期檢查。
- 檢查受付番号未重複。
- 若填関連受付番号,確認首行存在、
請求書=1,而且請求人相同。 - 依序向三張核心表插入同一受付番号。
- 若
総延 > 1,自動再建立総延-1個延件行。新號碼固定用「原受付番号前 8 字元+四位流水號」。
複寫出的延件會承接支部、請求人、稅目、案件分類、承辦與多數共通日期,但個別處分專屬欄位不全都複寫;它們設為 実=0、総延=0、延=1。
3.更新:先改本行,再把共通欄位灑到整組
- 確認、必填與日期檢查。
- 若受付番号有改,檢查新號碼唯一性;資料庫關聯會串聯更新兩張子表的鍵。
- 依序更新三張核心表。
- 若目前是關聯首行,呼叫
UpdKanren1,把姓名、分類、承辦、共通程序日期、計畫與進度等同步至同一関連受付番号的從屬行。 - 若重新指定首行,程式會把舊首行的
請求書改為 0。
4.「複寫」不是另存新案件,而是補齊缺少的延件
只有 総延 ≥ 2且存在関連受付番号時才能用。進入複寫模式後,大部分欄位被鎖住;程式先數同一受付番号前 8 字元、且同一関連受付番号的現有行,再只補造不足的流水號。因此按鈕名稱很容易誤導:它的業務目的是依総延補足計數行,不是讓使用者自由複製一件案件。
5.刪除:看你刪的是首行還是從屬行
- 沒有関連受付番号:只刪目前資訊行,兩張日期表由關聯串聯刪除。
- 有関連受付番号且
請求書=1:刪除所有同一関連受付番号的資訊行,也就帶走每行的兩張日期資料。 - 從屬行:只刪目前受付番号。
注意:刪除後重新計算 総総実/総総延的呼叫已被註解,所以剩餘首行的總數可能變舊。
關聯同步的 F 旗標:為什麼每個日期後面又有一個 F?
【程式】資料表說明寫得很明確:0 或 Null=同步更新,-1=不更新。例如 裁決F、法了F、発送F。
| 首行的 F | 從屬行的 F | 結果 |
|---|---|---|
| 0/Null | 0/Null | 首行值覆蓋到從屬行。 |
| -1 | 任何值 | 本欄不向外同步。 |
| 0/Null | -1 | 保留該從屬行自己的值。 |
這是在「整組通常共用日期,但少數延件例外」之間做折衷。新系統若要重建,最好把它表達為明確的「繼承/覆寫」模型,而不是讓每個日期旁都長一個難懂的 Boolean。
哪些是真必填?哪些只是警告?
無條件必填
【程式】主流程會要求:支部、受付番号、請求人、地址、稅目、事件種、局部課、本支所、原処分庁、受理態樣、収受態樣、青白區分、年分、原處分、実、総延、延、請求日、収受日、處理態樣,以及法人番号/個人番号/個人身元確認三個確認欄位。注意:是否真的該三者同時要求,是程式現況,不代表所有案件法律上都必然同時適用。
條件必填
| 條件 | 必須補什麼 |
|---|---|
| 代理代碼 > 0 | 代理人姓名。 |
請求書=1 |
総総実、総総延;若有関連受付番号,必須等於自己的受付番号。 |
| 非首行且有関連受付番号 | 不可指向自己;目標必須存在、為首行且請求人相同。 |
| 海外取引有り | 國際爭點分類。 |
| 審理留保中/審理再開 | 留保開始日/再開日。 |
| 全部/一部取消 | 取消事由;部分稅目另要本稅、加算稅取消金額。 |
| 却下/取下げ | 却下事由/取下事由。 |
総総延 > 9 |
継続管理。欄位說明指示一名請求人延件達 10 件以上時輸入「2」。 |
| 併合/分離類審理態樣 | 併合分離年月日。 |
| 事件區分發生變更 | 設定日與變更理由。 |
| 審理狀況予定表輪次有值 | 對應輪次日期。 |
| 担当者介紹「無」 | 無法介紹的理由。 |
| 審理程序意見聽取 > 0 | 實施日。 |
| 一年內判定除外=Yes | 除外期間(自)。「至」的必填檢查在程式中已被註解。 |
日期檢查不是硬擋
程式檢查大量先後順序,例如:
- 収受/収調 → 補求 → 補完;答求 → 答限 → 答受。
- 初合 → 終合 → 議決;法回 → 返戻/法了 → 裁決 → 発送。
- 浄書回付 → 浄書終了;次席回付 → 次席決裁;所長回付 → 所長決裁。
- 面談通知 → 面談實施;書類提出要求 → 提出;閱覽請求 → 實施;口頭意見申立 → 實施。
- 當初計畫及修正計畫的七個節點順序、三輪予定表/爭點確認表順序、各種要請日 ≤ 提出期限。
關鍵:發現矛盾後,DateCheck把全部訊息串起來,最後問「処理を続行しますか?」;按「是」就回傳成功並繼續保存。因此這是可覆寫的警告。若業務需要例外,理想設計應要求記錄覆寫理由與操作者,而不是只有 Yes/No。
已被註解、目前不生效的規則
- 主要爭點番号的部分必填要求。
総延 > 1時関連受付番号必填。- 若干要求書類期限、爭點/予定表交付日期的必填。
- 除外期間(至)必填。
- 多個「後日期存在時,前日期必須存在」的檢查;有些只剩「兩者都有值時比較大小」。
為什麼有這麼多「表、書、意見、閱覽、謄寫」?
| 東西 | 業務作用 | 系統怎麼追 |
|---|---|---|
| 答弁書 | 原処分庁對請求理由作正式回應。 | 要求日、期限、收件日、送付請求人日。 |
| 反論書/意見書/回答書 | 雙方針對對方主張與新資料繼續攻防;参加人也可提出意見。 | 按角色與輪次保存要請、期限、收受。 |
| 審理の状況・予定表 | 把已提交文件、當前爭點、調查/審理狀況與今後予定透明化。 | 最多三輪,分別記錄交付雙方日期。 |
| 争点の確認表 | 把原處分、爭點與雙方主張整理成同一張地圖,防止雞同鴨講。 | 最多三輪,分別記錄交付雙方日期;是否交付依個案。 |
| 口頭意見陳述 | 讓請求人或参加人口頭說明;依法與官方說明,請求人可經許可向原処分庁提問。 | 無、已申立、已實施、撤回、不認、未實施等狀態,加申立/實施日期與出席資訊。 |
| 閱覽/寫し交付/謄写 | 雙方在法定範圍內查看或取得對方及職權調查資料;交付可能收取實費,特殊情形可減免。 | 按請求人、原処分庁、参加人及多輪請求,追狀態、日期、頁數、費用、繳費、交付與排除日數。 |
| 第 96/97 條資料 | 第 96 條側重審理關係人提出證據書類等;第 97 條涉及審理所需的質問、檢査、物件提出要求等職權調查。 | 暫定表按申告書、通知書、帳簿寫、聽取書、金融機關/交易對手與其他資料,追各階段提出日及結束旗標;目前 0 筆。 |
【官方】這些程序不是 VBA 作者憑空想像。可核對國税不服審判所審理程序說明、官方提出書類一覧及現行國税通則法。
內部分類代碼:它們是報表維度,不一定是法律分類
事件處理區分:A、B、C、D、E、A'
【程式】代碼表只保存這六個標籤,沒有說明 A 到 E 各代表何種難度或處理方式。報表會優先採「再變更區分」,其次「變更區分」,最後才是初始區分;並用它產生硬編碼模型日程。任何把 A 解釋成簡易、D 解釋成複雜的說法都只是猜測,本文不這樣做。
事件種
推計課税等、行政訴訟相關、査察相關、其他訴訟相關、調査課等、特調等、税関長等、其他一般。它決定統計分類與可能的處理特性。
當前審理區分
管理手持、議決未済、返戻未済、報告未済、法審未済、決裁未済、留保事件。這是管理者看「卡在哪個工作籃」的欄位,不是裁決結果。
案件怎麼進來
- 受理態樣:持參、經原處分機關、郵送等、電子申請、其他——偏向物理/管道。
- 収受態樣:始審、3 個月經過、みなす 89 条、みなす 90 条,以及再調查後的一取/棄却/却下/変更/其他——偏向前置程序與法定路徑。縮寫「一取」的正式全稱需向內部確認。
- 審理態樣:無、併合、分離、併せ、併合併せ、分離併せ。
- 調整:無、削番、稅目變更、事件種變更、本支所移送、他支部移送。許多正式統計查詢會排除
調整≠0的資料。
國際、重要與公表
- 國際爭點:外國稅額控除、非居住者/外國法人納稅義務與源泉課稅、移轉訂價、國外關係人捐贈、過少資本、外國子公司合算稅制、其他、消費課稅、資產課稅。
- 重要案件:重要先例見込、個別管理重要、本部協議、情報共有、本部照會、相互審查等;代碼文字引用內部《提要》章節。
- 公表判定:未判定、公表適、公表否(可能識別請求人/洩漏營業秘密/其他)、公表留保。這是裁決公開前的隱私與機密判斷。
取消、却下、取下與長期化理由
- 取消:法令或通達解釋適用錯誤、事實認定錯誤、新資料、重加算稅要件認定錯誤、計算錯誤、其他;推計課稅另分推計方法、基礎項目、同業者率、實額採用等。
- 却下:逾期、原處分不存在、非不利益處分、已確定、非法律規定請求事項、再調查請求不適法、無決定、無資格、不補正、其他。代碼表另混有「原処分取消し」類歷史項目,不能直接當成現行法的纯粹却下理由字典。
- 取下:原處分被取消、請求人接受原處分或放棄主張、無裁決利益、各類不適法原因等。
- 長期化:請求人不合作、原処分庁、關係人、事實複雜、法律適用困難、案件激增、査察/訴訟、承辦人病假、其他、留保、已議決。
報表才是終點:管理層到底想看什麼?
【程式】主選單把報表大致分成六組:
- 發生與處理實績:按稅目、事件種、支部/本所、原処分庁、處理態樣、取消稅額、取消/却下/取下理由、月份等統計,另有受付簿。
- 平均處理期間:每案、全體、實件/延件、支部、稅目、事件種、部門,以及圖表和期間異常檢查。
- 未済管理:各支部未結數、處理階段、逐案經過月數、全國/支部平均、留保案件、長期化理由及明細。
- 模型期間:把 A~D、A' 的內部模型日程與實際/計畫日期並排。
- 業務計畫與實績報告:計畫指標、處理實績、進度表。
- 輸入品質:入力状況確認、未済状況確認、汎用入力チェック、期間與日期矛盾清單。
報表的「今天」不是固定今天
| 函式 | 規則 | 用途 |
|---|---|---|
sDate() |
主選單沒開時=當月 1 日;有開時=使用者輸入的基準日(自)。 | 報表起日。 |
eDate() |
主選單沒開時=今天;有開時=基準日(至)。 | 報表截點;大量「截至某日未済」判斷都依它。 |
ksDate() |
以 4 月 1 日為會計年度起點。 | 年度實績與跨年度比較。 |
jsDate() |
以 7 月 1 日為另一統計年度起點。 | 部分進行管理/業務計畫口徑。 |
所以不能簡單說「本系統年度都是 4 月」或「都是 7 月」:兩套起點都存在,由不同報表使用。
四個會改變數字的隱藏口徑
- 有效收件日:
IIf(収調 Is Null, 収受, 収調)。只要填了収調,經過期間就改從収調算。 - 未済的終點不統一:有的報表按裁決日統計處理,有的未済查詢要到
発送完成才排除。因此「已裁決但尚未寄出」可能法律判斷已完成,操作報表仍在待辦。 - 調整資料常被排除:
調整=0才進正式統計,削番、稅目變更、移送等通常被濾掉。 - 代表行與計件權重:有的清單只取
請求書=1,有的統計加總実或延;同一批資料若選錯口徑,件數會完全不同。
經過期間分桶
系統至少存在兩套分桶:
- 細版:6 個月內、9 個月內、1 年內、1 年 6 個月內、2 年內、2 年 6 個月內、3 年內、3 年超。
- 彙總版:6 個月內、1 年內、2 年內、3 年內、3 年超。
另有逐階段耗時:收件→答弁要求、答弁要求→答弁收受、答弁收受→指定、指定→着手、着手→議決、議決→法審了、法審了→裁決等。這使管理者不只知道「慢」,還能知道慢在答辯、調查、合議、法審或決裁。
A~D、A' 的硬編碼模型日程
【程式】進行管理一覧把一年分成每月上/中/下旬,用 ①~⑦標記模型、計畫與實績:
①答弁書要求 ②答弁書收受 ③當初合議 ④議決 ⑤法規審查了 ⑥裁決 ⑦謄本発送
| 區分 | ① | ② | ③ | ④ 議決 | ⑤ 法審了 | ⑥ 裁決 | ⑦ 発送 |
|---|---|---|---|---|---|---|---|
| A | — | — | — | +26 日 | +34 | +37 | +40 |
| B | +9 | +37 | +67 | +140 | +170 | +177 | +180 |
| C | +9 | +37 | +67 | +230 | +270 | +277 | +280 |
| D | +9 | +37 | +67 | +270 | +317 | +327 | +330 |
| A' | — | — | — | +70 | +90 | +97 | +100 |
| E | 未設定模型;模型議決日顯示「-」 | ||||||
千萬別把上表當法定期限。這些只是 VBA 中從「有效收件日」加固定天數的內部管理模型。官方公開的 1 年標準審理期間與這套 A~E 日程是不同層次的概念。
一年內處理:官方口徑和本程式的落差
【官方】國税不服審判所把「審查請求到達後至裁決通常所需的標準期間」設為 1 年。最新的令和 7 年度(2025-04-01~2026-03-31)公開資料顯示:發生 3,159 件、處理 3,128 件,其中全部/一部認容 226 件、認容率 7.2%,一年內處理比例 98.8%。官方註明,計算一年內比例會排除相互協議、公訴相關等留保期間,以及災害或請求人原因造成的中斷期間。見令和 7 年度審查請求概要。
【程式】資料庫有 1年以内判定除外、除外期間(自)、除外期間(至)、留保與再開欄位;但全庫搜尋只發現這些欄位被輸入、驗證及輸出到參考清單,沒有發現自動把除外天數扣掉後重新判定一年內的公式。而且只設一組除外起訖,無法自然表示多次中斷。這表示最終一年內統計可能另靠人工計表、外部作業或尚未納入本檔的處理。
從開發者角度看:VBA 架構怎麼串起來?
期間、功能、報表入口
使用者互動與表單驗證
必填、日期、CRUD、關聯複寫、計件
統計、未済、平均期間、進行管理、輸入檢查
| 模組 | 主要責任 |
|---|---|
DBFunc |
載入一件資料、三表新增/更新、受付番号查重、前後筆、関連檢查、延件複寫、首行同步、総総彙總。 |
FormFunc |
一般必填、條件必填、日期先後警告、數值轉換。 |
ReportFunc |
爭點表/閱覽狀態文字、進行管理 ①~⑦、A~D/A'模型日期。 |
DateFunc |
報表起訖日、4 月/7 月年度起點、基準日起訖檢查。 |
DBImport/DataConvert |
資料庫匯入、表格轉換與管理者遷移功能。 |
開啟主輸入表單時,OpenArgs區分「新規、更新、複写」。SelData一次把三張表的大量欄位搬到表單;更新時又逐一搬回。這是典型 Access「巨型表單+程序式資料映射」架構,業務規則散落在表單事件、模組、欄位說明與查詢中,而不是集中在一個領域層。
已確認的技術風險與疑似缺陷
以下不是對業務好壞的評價,而是「若你要維護或重建,最容易出事故的地方」。
| 優先度 | 問題 | 證據與後果 |
|---|---|---|
| 高 | 三表寫入沒有交易 | 新增/更新依序操作三張表與關聯行,未找到 BeginTrans/Commit/Rollback。中途錯誤可能只完成前半,形成三表不齊;SelCheck雖能偵測,不能自動復原。 |
| 高 | 総総自動重算被停用 | 負責加總同組 SUM(実)與SUM(総延)的 UpdSousou仍存在,但新增、更新、刪除後的呼叫都被註解。總計需人工維護或可能陳舊。 |
| 高 | 11 碼受付番号與複寫算法衝突 | 驗證允許 11 碼(第 4、7 位為連字號)及 12 碼(第 5、8 位為連字號),但複寫永遠取前 8 字元再接 4 位號。11 碼格式的第 8 字元已是尾號首位,複寫會生成不同長度/錯誤前綴。 |
| 高 | 疑似複製貼上錯誤:次席決裁 | 在 UpdKanren1同步 次席決裁時,判斷的不是次席決裁F,而是表單與目標行的浄書終了F。高機率是 copy-paste 缺陷,會讓使用者設定的次席決裁例外旗標失效。 |
| 中高 | 新關聯組同步分支被停用 | UpdKanren2完整存在,但更新按鈕中的呼叫被註解。改掛新首行後,哪些欄位應同步到新組可能與原設計不一致。 |
| 中高 | 日期矛盾可無理由覆寫 | 使用者按「是」即可保存,沒有要求例外原因、審批或審計記錄。 |
| 中高 | 一年內排除沒有自動公式 | 只有單一排除起訖與參考輸出;官方口徑可能有多段中斷。若人工計表遺漏,績效數字會受影響。 |
| 中高 | 隱藏的破壞性遷移功能 | 啟動巨集只呼叫 proctest()控制按鈕顯示;以 Access 命令參數 1 啟動時會顯示「テーブル移行」。其轉換程序確認後會刪除非系統表,再按已存匯入規格重建。這應只在可復原備份與受控作業下使用。 |
| 中 | 明文匯出到固定路徑 | 管理按鈕可把三張核心表輸出到 C:\temp文字檔。資料含姓名、地址、電話與敏感稅務內容,必須有權限、加密、留存與刪除政策。 |
| 中 | SQL 字串拼接 | 多處直接把受付番号、請求人等拼進 SQL。即使是內部桌面程式,單引號、特殊字元與非預期輸入也可能造成查詢錯誤;應改參數化。 |
| 中 | 規則散落且硬編碼 | A~D 模型天數、報表年度、完成條件、代碼含義分散在 VBA、查詢、表單與 694 張報表;改一個口徑很容易漏改。 |
| 中 | 直接表格入口可能繞過表單規則 | 主選單有直接打開核心表的管理入口。若操作員直接編輯表,VBA 必填、日期警告與關聯同步都不會執行。 |
如果你要重建:不要照抄 409 欄巨表,要還原成領域模型
目前設計把「一件案件的一切」橫向鋪成欄位。新系統更適合把可重複、可多輪、可追歷史的東西變成子實體:
| 建議實體 | 承接目前哪些概念 |
|---|---|
| AppealRequest/審査請求 | 一份請求書、首行、関連受付番号、整組總計、提出與收件路徑。 |
| Party | 請求人、共同請求人、代表者、代理人、補佐人、参加人、原処分庁;角色與聯絡資訊分開。 |
| Matter/實件 | 稅目、年分、事件種、爭點、原處分、事件處理區分歷史、実與総延。 |
| ChallengedDisposition/延件 | 每個獨立計件的處分,代替自動複寫的寬資料行。 |
| PanelAssignment | 担当審判官、参加審判官、部門、分担者、指定與變更歷史。 |
| MilestoneEvent | 所有「答求、初合、議決、法了……」改成事件類型+實際日+來源+備註,不再一日期一欄。 |
| PlanRevision | 當初計畫、每次修正計畫、修正理由與版號,保留完整歷史而非只留「當初/最新修正」。 |
| Submission/DocumentRequest | 答弁、反論、意見、回答、要求書類、多輪期限與收受;用角色和文書類型區分。 |
| InvestigationActivity | 面談、質問、檢查、資料要求、留置/返却、本部照會、最多五輪調查。 |
| AccessCopyRequest | 閱覽、寫し交付、謄寫、頁數、費用、繳費、減免、交付;可有任意多輪。 |
| HoldPeriod/ExclusionPeriod | 留保、再開與一年內統計排除;允許多段、原因、核准與計算結果。 |
| Decision | 議決、裁決、結果、理由、取消金額、裁決番号、公表判定、発送與送達。 |
| AuditTrail | 誰在何時改了什麼、覆寫哪個警告、為何手動調整收件日或統計口徑。 |
新系統至少要守住的資料不變條件
- 受付番号對外唯一,但內部主鍵用不可變 UUID;改受付番号不等於改實體身份。
- 一份 AppealRequest 必有且只有一個首行概念;同組 Party/Matter/Disposition 都指向同一根。
総総実與総総延不由人輸入,而由明細即時計算;必要時保存報表快照,但不可有兩個真相。- 新增一件及所有子項必須在同一交易中成功或全部回滾。
- 日期順序分成「絕對禁止」與「允許例外」;例外需原因、權限、時間與審批記錄。
- 法定期限、官方標準期間、內部模型日程是三種不同規則,分開配置、分開顯示。
- 同一事件可有多次分類變更、多次計畫修正、多次留保、多輪文書與閱覽,不用固定 1/2/3/5 欄位。
- 報表明確標示計件口徑(請求書/實件/延件)、期間起點(収受/収調)、完成點(議決/裁決/発送/送達)與排除條件。
- 個資與稅務敏感資料採最小權限、加密、匯出審批、下載追蹤與保留期限。
最安全的重建順序
- 先定義字典:把本文末的待確認問題逐一取得業務簽認。
- 做唯讀對帳層:先用視圖重現現有 727 查詢中真正被使用的口徑,不急著改 UI。
- 建立正規化領域模型:保留舊受付番号作外部識別,建立映射與資料品質報告。
- 先遷移計件與主時間軸:這兩塊是所有報表共同底座。
- 逐組替換文書/調查/閱覽:把固定輪次欄位改成可重複子表。
- 雙跑報表:新舊系統以同一基準日比較實件、延件、未済、平均期間及處理結果,差異必須能逐件解釋。
- 最後才關閉 Access 寫入:在交易、權限、審計、備份與回退全部驗證後切換。
重建前,一定要拿去問業務的 16 個問題
- A、B、C、D、E、A'的正式定義、選定條件與可變更權限是什麼?
- 請求書、実、延、総延、総総実、総総延的正式統計定義,是否與本文三層模型完全一致?哪些本稅/加算稅組合要合併計件?
収調在什麼情況可改、由誰核准、是否必須留原收件日與理由?形回、予担回、文合、法回、再法、三次受理的正式全稱與完成條件是什麼?- 每一張報表的「處理完成」到底用議決、裁決、発送還是送達?為何不同?
- 一年內比例的排除期間由誰認定?可否多段?起訖日是否含首尾?目前外部怎麼計算?
- 関連同步的 F 旗標由誰操作?-1 是永久例外、單次例外,還是只對首行同步有效?
次席決裁使用浄書終了F是否確為缺陷,或有極特殊業務意圖?UpdSousou與UpdKanren2為何停用?是歷史事故、人工流程,還是已由外部作業取代?- 11 碼受付番号目前還在使用嗎?若使用,自動複寫如何避免前綴錯誤?
- 日期警告允許覆寫是否有紙本/外部審批?哪些日期其實應該硬性禁止逆序?
事績処理3與「暫定版補完入力」是否仍屬正式業務?若是,0 筆是尚未上線還是資料在別處?- 公表、重要案件、情報共有、本部照會與相互審查代碼的維護責任和生效日期如何管理?
- 刪除整組、直接編輯核心表、
C:\temp匯出與「テーブル移行」的正式操作手冊、權限與備份程序在哪裡? - 目前有沒有獨立的變更履歷、使用者權限與覆寫記錄?若沒有,稽核時如何還原誰改過資料?
- 694 張報表中,哪些仍在法定/管理作業使用,哪些只是歷史版?每張的業務 owner 是誰?
最後一張小抄:只記住這 12 句就夠了
- 這是案件管理與統計系統,不是自動法律判斷器。
- 一份請求書可以有多個實件;一個實件可以有多個延件。
- 関連受付番号把整組綁在首行;首行的請求書=1。
- 同一受付番号在三張核心表各有一行。
- 収調有值時,報表不用原収受日,而用収調算期間。
- 議決是合議體結論;裁決是正式行政判斷;発送與送達又是後續節點。
- 却下是程序不適法,棄却是實體理由不成立,取下げ是請求人撤回。
- 日期矛盾目前只是警告,使用者可以繼續。
- F=-1代表不要把首行值同步覆蓋到此欄。
- A~E是內部處理分類;固定加天數是管理模型,不是法定期限。
- 一年標準期間是官方目標;排除期間的完整計算不在這份 VBA 裡。
- 重建時先保計件、關聯、時間軸與報表口徑,再談漂亮畫面。
官方驗證來源
- 國税不服審判所:審理と裁決——形式審查、答弁書、合議體、主張立證、口頭意見、閱覽/交付、調查、終結、議決、裁決態樣與拘束力。
- 國税不服審判所:不服申立制度等——提出路徑、一般期間、標準審理期間及訴訟入口。
- 國税不服審判所:審判所的角色——第三者立場、行政內部最終判斷與制度定位。
- 國税不服審判所:代理人と総代——代理權、特別委任、共同請求與總代。
- 國税不服審判所:参加人とは——参加人的資格與程序權利。
- 國税不服審判所:提出書類一覧——反論書、意見書、口頭意見、補佐人、閱覽/交付、取下等官方表單。
- 國税不服審判所:審理程序與透明性說明——審理の状況・予定表、爭點、調查、口頭意見、閱覽/交付與終結效果。
- 國税不服審判所:争点の確認表說明——表內整理的原處分、爭點與雙方主張,以及依個案可能不交付。
- 國税不服審判所:標準審理期間——標準期間 1 年與可能難以在期間內裁決的事件例。
- 國税庁:令和 7 年度における審査請求の概要——最新發生/處理/認容/未済/一年內比例及排除口徑。
- 國税庁:統計編——審查請求件數按處分或事案計件的註記。
- e-Gov 法令検索:國税通則法(2026-04-01施行版)——答弁、反論、参加人意見、口頭意見陳述、證據、調查、閱覽/交付、終結與裁決等法源。
法令與運用會更新。本文核對時間為 2026-09-02;實際開發上線前,仍應重新確認當時生效版本及內部業務規程。
分析方法與可信度
原始 ACCDB 以 Access Automation Security 強制停用 VBA/巨集後唯讀盤點;匯出所有表、查詢、表單、報表、巨集、模組定義,再對核心 CRUD、驗證、關聯同步、日期函式、報表函式及關鍵查詢逐段追蹤。原檔未被修改,啟動巨集及匯入/轉換程序未執行。
最有把握的是:三表結構、關聯、欄位群、CRUD 順序、日期檢查可覆寫、関聯複寫、計件彙總函式、硬編碼模型日程與已註解呼叫。仍需內部確認的是:A~E與若干縮寫的正式業務定義、停用程式碼的決策背景、各報表 owner,以及一年內排除的實際外部作業。