There is a similar question on CodeProject that includes a sample function for programmatically selecting a category by name. Reproduced below for information:
int CYourClassName::ActivateCategoryByName( CString strCategoryName)
{
// Grab Pointer to MainFrame
CMainFrame* pMainFrame = ( CMainFrame*) AfxGetMainWnd();
// Grab Pointer to RibbonBar
CMFCRibbonBar* pmrb = &pMainFrame->m_wndRibbonBar;
// Get Category Count
int nCategoryCount = pmrb->GetCategoryCount();
// Scan Category
for ( int nCategoryNdx = 0; nCategoryNdx < nCategoryCount; nCategoryNdx++)
{
// Grab Pointer to Category
CMFCRibbonCategory* pmrc = pmrb->GetCategory( nCategoryNdx);
// Get Category Name
CString strName = pmrc->GetName();
// Check for Requested Category
if ( strName == strCategoryName)
{
pmrb->ShowCategory( nCategoryNdx, TRUE);
pmrb->SetActiveCategory( pmrc, TRUE);
return nCategoryNdx;
}
}
return -1;
}