How to evaluate VB constant name in string variable?

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
 
P

Peter T

What's the context of your question

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

Regards,
Peter T
 
G

G Lykos

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

Thanks!
 
G

G Lykos

Thanks for the suggestion. Consistently evaluates to 0 when applied to
string variables containing VB constant names.
 
P

Peter T

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
 
G

G Lykos

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?
 
P

Peter T

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
 
G

G Lykos

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

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top