How to evaluate VB constant name in string variable?

  • Thread starter Thread starter G Lykos
  • Start date Start date
G

G Lykos

Greetings!

Example: the value of vbOkay within the VBE is 6. {i = vbOkay} yields i =
6.

Would like a construct where {sMyString = "vbOkay" : i =
UnknownFunction(sMyString)} yields i = 6

TIA!
George
 
What's the context of your question

vbOkay - no such named constant, maybe you mean vbYes/6 or vbOK/1

Regards,
Peter T
 
Okay - how about vbOK/1. Are you familiar with a mechanism to evaluate the
VB constant name in a string variable?

Thanks!
 
Thanks for the suggestion. Consistently evaluates to 0 when applied to
string variables containing VB constant names.
 
If s = "vbOK" then
n = 1
elseif
etc

or
Select Case s
Case "vbOK": n = 1
etc

You didn't explain the context of your question, there might be a different
approach.

Regards,
Peter T
 
Thanks. The idea was to avoid having to look up and hard-code a bunch of
system constants that I already know by name. If you can go into the VBE
Immediate window, enter '? vbOK', and get back '1' on the fly, then you'd
think that VBA would be able to handle run-time evaluation of system
constants by name reference within module code. Any other ideas?
 
But VBA can indeed evaluate named constants (assuming it can find the
relevant library), that's the whole point of them, eg

result = MsgBox("yes+no+cancel=" & (vbYes + vbNo + vbCancel), vbYesNoCancel)
If result = vbYes Then
s = "yes " & vbyes
ElseIf result = vbNo Then
s = "no " & vbno
ElseIf result = vbCancel Then
s = "cancel " & vbcancel
End If
MsgBox s

Maybe I'm missing what you're trying to do

Regards,
Peter T
 
In fact, please stop here; see posting of the reframed question (looking to
reach the general public).
 
Back
Top