View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
PA PA is offline
external usenet poster
 
Posts: 101
Default Tell whether or not Sub B was called by Sub A?

May be you could have an argument to sub B:

sub B(byval sCallerProc as string)
if sCallerProc=A then
.....
else
.....
endif
end sub

that won't work if B is called directly by the user. It will need to fire
sub C that will fire sub B.

I'm not sure if I'm clear.

PA


"IanKR" wrote:

For example, if I have two Subs in my project, say A and B, and B may
sometimes be called from within A and at other times it may be run
independently of A, other than setting a global Boolean as illustrated
below, is there a slick way of telling?

Dim SubBCalledFromSubA as Boolean

Sub A()
'first reset Boolean, just in case
SubBCalledFromSubA = FALSE

.....

SubBCalledFromSubA = TRUE
Call B
....

'reset Boolean
SubBCalledFromSubA = FALSE
End Sub

Sub B()
If SubBCalledFromSubA = TRUE Then
'code here
End If

If SubBCalledFromSubA = FALSE Then
'some other code here
End If
End Sub

I thought that Application.Caller (or something similar) might be relevant
here, but it doesn't appear to be, judging by the help file.

Thanks

Ian