constants aren't actually stored, The compiler simply replaces any references to that constant in your code to the value of that constant.
so this
Code:
Const MYVAL = 46
Public Sub Command1_Click
Msgbox MYVAL
Msgbox MYVAL + 4
End Sub
will compile exactly the same as
Code:
Public Sub Command1_Click
Msgbox 46
Msgbox 46 + 4
End Sub
The value is stored each time you use the constant as the same type as the function you are using the constant in expects.
The reason you can set types for constants is to avoid overflows, for example
Code:
Const MYVAL = 250
Public Sub Command1_Click
Msgbox MYVAL * MYVAL
End Sub
will cause an overflow because the compiler interprets 250 as an integer (If you had typed Msgbox 250 * 250 you would still get an overflow)
Code:
Const MYVAL As Long = 250
Public Sub Command1_Click
Msgbox MYVAL * MYVAL
End Sub
will avoid this, it's the equivilant of
Code:
Public Sub Command1_Click
Msgbox CLng(MYVAL) * CLng(MYVAL)
End Sub
but it desn't loose speed converting because it calculates CLng(250) at compile time.