# Commuter Allowance VBA Project Excel VBA 通勤手当計算ツール。 ## Structure ``` vba/ ├── 通勤手当テンプレート.xlsm # Main workbook ├── data/ # CSV data files │ ├── 222交通機関名区分.csv # Transport type (222) │ ├── 223通勤_決定事項区分.csv # Decision factors (223) │ ├── 224通勤_手当月額の決定区分.csv # Monthly amount (224) │ ├── 507発信者.csv # Sender (507) │ ├── 区間.csv # Route (section) │ └── 区間詳細.csv # Route details └── src/sh/tuk/ # 通勤 (Commuter) modules ├── init_module/ │ ├── Import_modules.bas │ └── Test_Cache.bas ├── module/ │ ├── Common_Button.bas (306 lines) │ ├── Common_File_Utils.bas (347 lines) │ ├── Common_Functions.bas (486 lines) │ ├── Common_Global_Cache.bas (586 lines) │ └── Common_Selector.bas (161 lines) └── sheet/ ├── C1.cls (846 lines) - Tukin_C1: 通勤手当編集 ├── M1.cls (167 lines) - Master_Kukan: 区間マスタ (import/export/validate) ├── M2.cls (400 lines) - Master_Kukan_detail: 区間詳細マスタ ├── O1.cls (5 lines) - Master_address: 住所マスタ ├── O2.cls (6 lines) - Master_507: 発信者マスタ (507) ├── T1.cls (54 lines) - Master_244 ├── T2.cls (114 lines) - Master_245 ├── T3.cls (74 lines) - Master_246 ├── Z1.cls (64 lines) - Master_222: 交通機関マスタ ├── Z2.cls (54 lines) - Master_223: 決定事項マスタ ├── Z3.cls (57 lines) - Master_224: 手当月額決定区分マスタ └── O3.cls (61 lines) - Master_225 ``` ## Sheet Class Prefix | Prefix | Description | |--------|-------------| | C | 通勤手当編集 (Commuter allowance editing) | | M | メニュー/区間マスタ (Menu / Route master) | | O | その他マスタ (Other masters) | | T | 通勤区間 (Route) | | Z | マスタデータ設定 (Master data configuration) | ## キャッシュ構造 | Cache | Sheet | Key → Value | |-------|-------|-------------| | m1Cache | M1 | 区間コード(C) → 交通機関区分(D)、交通機関名称(E)、利用区間発名(F)、利用区間着名(G)、券種(I)、運賃(L) | | m1KukanDCache | M1 | { 交通機関区分(D): { 利用区間発名(F): [利用区間着名(G)] } } | | m2Cache | M2 | { 区間コード(C): { 券種(I): { コード(J): 1箇月運賃(K) } } } | | z1Cache | (222)交通機関マスタ | 区分(C) → 交通機関名称(D) | | z2Cache | (223)通勤_決定事項区分一覧 | 区分(C) → 決定事項(D) | | z3Cache | (224)通勤_手当月額の決定区分一覧 | 区分(C) → 手当月額の決定(D) | | o1Cache | 住所情報 | { 職員番号(C): { 住所1(E): [住所2(F)] } } | | o2Cache | (507)発信者一覧 | 区分(C) → 官職名称(D) | ## License MIT