Out of curiosity what is the point, of saying this? Seems a little pedantic. I think it "could" be a private function not that it "should" be a private function. I am all for limiting scope and exposure, but cannot envision a scenario where making this public could have any impact. How would you even call this from an external process?
forms("form1").enableButton()
Sure that would enable a button on form1 based on changes in form 2, but that is a reach.
@MajP
Well perhaps you're right about me being pedantic.
I must have been channeling my inner MajP when I wrote that.
Some might think the point was to give you something pedantic to say in response...
But in fact the point is valid and I expect it applies equally to your Public functions in post #4 though I've not tested those.
It took me less than 5 minutes to create a simple example to illustrate the point. For a highly capable programmer like yourself it would probably have taken less a minute to check before replying.
The example app has 2 almost identical unbound forms:
Form1 - contains Arnel's Public function - it works perfectly on that form
Form2 - includes code to call that function using Forms!Form1.fncEnable in the controls Change events
With both forms open, any change to controls in Form2 triggers the function and enables the Update button in Form1 which isn't what you want!
If only Form2 is open, the change event triggers error 2450 - Access cannot find Form1
However if the fncEnable function is Private, its scope would be limited to Form1 and there would be no issues