I tried the @ScottK approach, first as a side feature of my functional UDF, then as a standalone version of the HELP suffix when I ran into a problem (see below). Looking back, the latter approach is better in any case - more obvious to the user, attentive enough to see the tooltip, and it does not clutter up the functional code.
I realized that if an inattentive user just typed the name of the function and closed the parentheses when he thought about it, help will appear and he will be on the way. But dumping a bunch of text into one cell, which I cannot format, did not seem like a good idea. Instead, when a function is entered into a cell with no arguments ie
= interpolateLinear() or = interpolateLinear_Help()
msgBox opens with help text. MsgBox is limited to ~ 1000 characters, maybe 1024. But that's enough (barely 8 ^ /) for my overly deceived interpolation function. If this is not the case, you can always open the user form and go to the city.
When you first open the message box, it looked like a success. But there are a couple of problems. First, of course, the user must know to enter a function without arguments (+1 for the _Help UDF suffix).
The big problem is that msgBox reopens several times in a row, spontaneously, working in unrelated parts of the book. Needless to say, this is very annoying. Sometimes this continues until I get a circular warning. Go figure. If UDF can change the cell formula, I would do this to close it.
I do not know why Excel considers the need to recalculate the formula again and again; neither the standalone nor the full version (in help mode) have precedents or dependents. There is no application. Of course, the function returns the value to the calling cell. Maybe this causes a repeat? But what UDF do. I do not think you cannot return the value.
Since you cannot change the worksheet formula from UDF, I tried to return a specific row - value - to the calling cell (the only one you can change the value from UDF), indicating that I will check the cell value with application.caller in the next loop , point my line and do not recount the helper message. It seemed like a good idea at the time - it didn't work. Perhaps I did something stupid in my sleep deprived state. I still like the idea. I will update this when (if) I fix the problem. My quick solution was to add a line to the help field: “Seek help only in an emergency. Remove the out-of-order formula to end poverty.
In the meantime, I tried Application.MacroOptions approach. Pretty easy, and he looks professional. Just one problem to develop. I will post a separate answer to this approach later.