VBC00042 — Numeric literal overflow
Severity: Error · Family: VBC (parser / concrete syntax tree) ·
Source metadata: VBSyntaxErrorInfo
A numeric literal was written whose value does not fit the type the literal resolves to. The type is fixed by the literal's own form (a type-declaration suffix, the presence of a decimal point or exponent, or a radix prefix) before any context is considered. The overflow is therefore a property of the literal alone, and is caught while the syntax tree is built.
See RD-VBAL §3.2.0 Literal Expressions and MS-VBAL §3.3.2 Number Tokens.
The verbose detail names the literal and the type it overflowed.
How it is raised
| Situation | Example | Resolution |
|---|---|---|
| A type-declaration suffix pins the literal to a type it cannot fit. | 99999%: % is Integer (max 32767) |
Drop the suffix, use a wider one (99999&), or reduce the value. |
An unsuffixed integer literal exceeds Long. |
3000000000 |
Add @ (Currency) or # (Double), or write it as a narrower value. |
| An unsuffixed floating-point literal (decimal point or exponent) overflows to infinity. | 1E400 |
Reduce the magnitude; the largest Double is about 1.8E308. |
| A hexadecimal or octal literal without a suffix exceeds 32 bits. | &HFFFFFFFFF |
Add & to force Long semantics, or use fewer digits. |
Notes
This is a syntax error, not a runtime one: the literal is rejected before evaluation, regardless of where it appears.
A value that fits its literal type but not its assignment target is a separate, later concern (a
let-coercion / type-mismatch diagnostic), not VBC00042.
See also
ACCUEIL • HOME | ℹ️ BIENVENUE • WELCOME | 🧩 BÂTISSONS • BUILD | RD-VBAL | SDK | 🌐 rubberduckvba.ca