Да, это сложная задача, вы почти у цели.
Вот что вам нужно сделать с вашими 3 частями
Предполагая, что ваш WB назван: workbookname.xlsm
Пример части 1 wb xml Ссылки Макрос управления (функция) Имя:
OnAction="Workbookname.xlsm!Control_Macroname"
Макрос управления лентой части 2 (функция):
Sub Control_Macroname(control as IRibbonControl)
Call Macro()
End Sub
Макрос части 3 на самом деле запустить:
Sub Macro()
'do stuff
End Sub