47c7d95266d861f7794a4b478f8fed389024ab57
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
Languages
VBA
80%
Visual Basic 6.0
20%