Excel.Application.Run (macroName) calls macros named in sheet. How to check automatically that macroName does actually exist as a sub?

I have a list of macros in a hidden Excel sheet, which supplies the macro to be called when a specified customised ribbon BUTTON is clicked
Using Excel.Application.Run (macroName) , how do I deal with the event that macroName is listed in my lookup sheet, but does not exist as a sub?

The call for a macro includes this:
If macroName <> "" Then
Application.ScreenUpdating = False
rib_context.Visible = xlSheetVisible
With rib_context
Excel.Application.Run (macroName)
End With
rib_context.Visible = xlSheetHidden
Application.ScreenUpdating = True
End If

BUT if I call a macroName for a non-existent Macro, no error is reported by vba. Is there a vba check that I can apply to guard against calling a non-existent macro?

This is the first time I've used for my Customised Ribbon and I depend on it working.
If you have criticisms of my approach - I'd surely welcome them now!

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Do you already have error handling in the rest of the code? There will definitely be an error reported for a non existent macro. It will be error number 1004 and the description will be "Cannot run the macro 'unknown_macro_name'. The macro may not be available in this workbook or all macros may be disabled."

Kelvin4Author Commented: 2018-02-18

Thanks, both.
The core issue is that most of my ribbon buttons call the same macro, so I can tackle the fiddly issue of setting the MyTag values that contexturally control the enablement of the ribbon buttons. I find this much easier to do centrally, once, in an excel sheet, rather than in 'MyTag = ' statements in macros distributed about the piece. I admit I could do all this via the Select Case method using Control.ID as Case. Then I would certainly know if I called an non-existent macro (my original question). But the excel Sheet approach is visually very helpful.

This is a problem I have solved for myself , but your participation was appreciated - it helped me think about my options and solution.
I describe my thinking here. Because I owe you it, if you want to read it, and because someone else might read it sometime.
Kelvin4
If you wish to make further comments/warnings - I will be attending!

Explanation:
First, I can confirm that Excel.Application.Run (macroName) does not return an error when no sub with name = macroName exits.
- this is different from (say) row = Application.WorksheetFunction.Match(str, MyRange, 0), where a match failure yields the error Wayne describes. Perhaps this feature of Excel.Application.Run is understandable, since Excel.Application.Run can call procedures in other WBs?

Since THIS QUESTION, i've created public variable 'strMacroCalled' which appears in the first line of sub macroCalled:
strMacroCalled = Name of called macro.
The following snippet shows strMacroCalled being used in a sub is named: "MyMacroName":

Here is the code that runs MyMacroName via Excel.Application.Run (macroName)

The most successful MSPs rely on metrics – known as key performance indicators (KPIs) – for making informed decisions that help their businesses thrive, rather than just survive. This eBook provides an overview of the most important KPIs used by top MSPs.

First, I can confirm that Excel.Application.Run (macroName) does not return an error when no sub with name = macroName exits.
- this is different from (say) row = Application.WorksheetFunction.Match(str, MyRange, 0), where a match failure yields the error Wayne describes.

Glad you got it working, but the above statement is not correct. You will definitely get an error when the macro is not found, and it is definitely different to the error returned by the worksheet function.

Kelvin4Author Commented: 2018-02-18

Wayne - thanks for taking the time to write.
Its late here.
I'll get my evidence together tomorrow am, and let you see it.
Thanks
Kelvin