PC Review


Reply
Thread Tools Rate Thread

Can I use a variable contain the name of a sub or function to call it?

 
 
NoSpam@aol.com
Guest
Posts: n/a
 
      23rd Nov 2011
I would like to be able to decide at run time which of several subs to
call and, when writing the code, it may be impossible to even know the name
of the sub.

That is, I cannot use code like:
if i > 5 then
call This()
else
call That()
endif

because I have no idea what the names of "This" or "That" may be.

I would like to do something equivalent to:
Sub MyCode(SubName as WhateverIsNeeded)
Call SubName
End Sub

Thanks for any help.
 
Reply With Quote
 
 
 
 
Don Guillett
Guest
Posts: n/a
 
      23rd Nov 2011
A bit more clarification??


On Nov 23, 8:35*am, NoS...@aol.com wrote:
> I would like to be able to *decide at run time which of several subs to
> call and, when writing the code, it may be impossible to even know the name
> of the sub.
>
> That is, I cannot use code like:
> * * * * if i > 5 then
> * * * * * * * * call This()
> * * * * else
> * * * * * * * * call That()
> * * * * endif
>
> because I have no idea what the names of "This" or "That" may be.
>
> I would like to do something equivalent to:
> * * * * Sub MyCode(SubName as WhateverIsNeeded)
> * * * * * * * * Call SubName
> * * * * End Sub
>
> Thanks for any help.


 
Reply With Quote
 
GS
Guest
Posts: n/a
 
      23rd Nov 2011
Look at the 'CallByName' function.

Is there some reason why you can't include the module at design time?

In either scenario you cite, you still need to know the name of the
procedure to call so why does it matter how you implement this? We need
more info to better help you...

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc


 
Reply With Quote
 
joeu2004
Guest
Posts: n/a
 
      23rd Nov 2011
<(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> I would like to be able to decide at run time
> which of several subs to call and, when writing
> the code, it may be impossible to even know the
> name of the sub.


Take a look at the help page for Application.Run. Be sure the limitations
fit your needs.

 
Reply With Quote
 
isabelle
Guest
Posts: n/a
 
      24th Nov 2011
hi,

Sub test()
Dim mc As String, nb As Integer
nb = Application.InputBox(prompt:="Choose a number between 1 and 10", Type:=1)
If nb > 5 Then mc = "This" Else mc = "That"
Call MyCode(mc)
End Sub

Sub MyCode(SubName As String)
Application.Run (SubName)
End Sub

Sub This()
MsgBox "This"
End Sub

Sub That()
MsgBox "That"
End Sub


--
isabelle

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off



Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 09:50 PM.