Pass the control as an actual control, by reference:
Public Function valid_email(ByVal stremail As String, ByRef controll As Control) As Boolean
At that point you can manipulate the control as you normally would.
that said, I don't think I'd do that in an email validation routine. Email validation has nothing to do with setting focus to a given control. As such, it makes more sense to let the calling code take care of whatever is supposed to happen after it has been told whether or not the string it passed was a valid email address. This will allow you to reuse your validation code anywhere, regardless of whether or not you care about a specific control while asking for validation.
Teddy, You are right. I maybe wanted too much, validate an email and if not valid, set the focus to the control that called the function. Maybe better to handle the setfocus in the private sub .