Hi
I've done this in the past with VBScript and, as mentioned earlier, a class definition.
If I understand the scenario, you want to have a project item that contains a number of public routines and functions that can be called from other project items. However, this project item may also contain private routines/functions that the other project items should not be able to access. So, within a class definition, declare those routines that you want to be able to use in other project items as public and those that you don't want to make available to the other project items should be made private. For example, my first project item (Unit1) would look like this:
Function createInstanceOfClass()
Set createInstanceOfClass = New MyUsefulFunctions
End Function
class MyUsefulFunctions
public function usefulFunction(aNumber)
dim newNumber
newNumber = helperFunction(aNumber)
usefulFunction = newNumber
end function
private function helperFunction(aNumber)
helperFunction = aNumber * 2
end function
end class
One of my other project items might look something like this:
'USEUNIT Unit1
sub myTest
dim classInstance
dim myNumber
set classInstance = Unit1.createInstanceOfClass()
'Test 1 - this should return a result of 6
myNumber = 3
myNumber = classInstance.usefulFunction(myNumber)
log.message("myNumber = " & myNumber)
'Test 2 - this should fail because helperFunction isn't accessible
myNumber = 3
myNumber = classInstance.helperFunction(myNumber)
log.message("myNumber = " & myNumber)
end sub
For the purposes of this example, the above project item calls both the public and the private routines from Unit1. However, as the results below show, only the public function is accessible whilst a call to the private function results in an error:

It's a little cumbersome because of the way you have to instantiate the class within VBScript, not like JScript, however, I think it's a minor inconvenience.
Hope you find it useful!!
Regards
Stephen.