VBAlidator rule catalogue¶
Stable rule IDs emitted by VBAlidator. Each row links to the rule's detail page. Use the rule_id to silence specific findings in your CI ignore list — the IDs do not change between releases.
| Rule | Severity | Category | Phase | Title |
|---|---|---|---|---|
VBA001 |
🔴 error | name_resolution |
0 | Undefined identifier |
VBA002 |
🔴 error | member_access |
0 | Member not found |
VBA003 |
🔴 error | declaration |
0 | Duplicate declaration |
VBA004 |
🔴 error | member_access |
0 | Invalid .member reference without With |
VBA005 |
🔴 error | type |
0 | Expected Array or Procedure |
VBA006 |
🔴 error | signature |
0 | Argument count mismatch |
VBA007 |
🔴 error | signature |
0 | ByRef argument type mismatch |
VBA008 |
🔴 error | control_flow |
0 | Exit statement type mismatch |
VBA009 |
🟡 warning | control_flow |
0 | Unreachable code |
VBA010 |
🔴 error | syntax |
0 | Syntax error |
VBA101 |
🔴 error | declaration |
1.4 | ReDim target undefined |
VBA102 |
🔴 error | declaration |
1.4 | ReDim target not a variable |
VBA103 |
🔴 error | declaration |
1.4 | ReDim target is not a dynamic array |
VBA104 |
🔴 error | declaration |
1.4 | Erase target undefined |
VBA105 |
🔴 error | declaration |
1.4 | Erase target not a variable |
VBA106 |
🔴 error | declaration |
1.4 | Erase target is not an array |
VBA201 |
🔴 error | jump |
2.1 | Jump target is not a label |
VBA210 |
🔴 error | assignment |
2.2 | Set used on a scalar target |
VBA211 |
🔴 error | assignment |
2.2 | Object assignment without Set |
VBA221 |
🔴 error | property |
2.3 | Property Let/Set has zero parameters |
VBA222 |
🔴 error | property |
2.3 | Property Let/Set arity disagrees with Get |
VBA223 |
🔴 error | property |
2.3 | Property Set value parameter is scalar (use Let) |
VBA224 |
🔴 error | property |
2.3 | Property Let value parameter is object (use Set) |
VBA230 |
🔴 error | const_expression |
2.5 | Const initialiser calls a function |
VBA231 |
🔴 error | const_expression |
2.5 | Const initialiser references a non-constant |
VBA240 |
🔴 error | operator_type |
2.4 | Arithmetic operator between string and numeric literal |
VBA250 |
🔴 error | declaration |
2.8 | Fixed-length String at procedure level |
VBA300 |
🔴 error | platform |
3.3 | Declare missing PtrSafe |
VBA310 |
🔴 error | enum |
3.4 | Duplicate Enum member name |
VBA320 |
🟡 warning | style |
3.6 | Module is missing Option Explicit |
VBA330 |
🔴 error | interface |
3.1 | Class is missing an interface method |
VBA340 |
🔴 error | events |
3.2 | RaiseEvent target has no matching Event declaration |
VBA341 |
🔴 error | events |
3.2 | RaiseEvent argument count mismatch |
VBA350 |
🔴 error | syntax |
3.5 | Procedure terminator does not match its kind |
VBA360 |
🔴 error | placement |
3.5 | Module-only declaration inside a procedure body |
VBA361 |
🔴 error | placement |
3.5 | Executable statement at module level |
VBA_LEX001 |
🔴 error | lexer |
0 | Unexpected character |
VBA_LEX002 |
🔴 error | lexer |
2.7 | Invalid date literal |
VBA_RT000 |
🔵 info | roundtrip |
4.5 | Round-trip verification unavailable |
VBA_RT001 |
🔴 compile_verified | roundtrip |
4.5 | VBE round-trip compile error |
VBA_RT002 |
🟡 warning | roundtrip |
4.5 | Round-trip verification inconclusive |
41 rules registered. Generated from src/rules.py via python tools/generate_rule_docs.py.