Вы правы, настраиваемые области задач регистрируются на уровне приложения.
Из коробки вы должны использовать конструктор лент, это не имеет значения, если вы не создаете ленту, но это лучший способ добиться того, чего вы хотите.
В загруженном событии ленты вам нужно получить доступ к Globals.ThisAddin.CustomTaskPanes, чтобы зарегистрировать панель задач, если она не зарегистрирована, а затем обновить содержимое на основе текущего контекста. Я не уверен, к каким событиям вам нужно подключиться, но, вероятно, нужно знать, когда активируется / выбирается новая книга, и обновлять панель задач.
Я работал над проектом ( VSTO Contrib ), который пытается решить это разъединение. RibbonFactory позволит вам зарегистрировать модель представления для типа объекта / ленты (Word.Document, Outlook.Appointment). и т.д.), и вы можете просто унаследовать от IRegisterCustomTaskPanes, чтобы подключить настраиваемую область задач для этой книги / документа / любого другого контекста. Он позаботится обо всей синхронизации для вас. Прочитайте, что он может сделать на http://jake.ginnivan.net/vsto-contrib/ribbon-factory
Не стесняйтесь связаться со мной или написать здесь для получения дополнительной информации.