So TabToControl and or TabToRange. I suppose the Range could be on a different sheet than sheet Tabbed From.Because Ranges are also involved in the tab order
If you take the 'Tables Sheet' Sheet and change its CodeName to 'TableSht', or whatever, then you can treat the 'TableSht' Code Page like a Class module with User Defined Properties that can return Objects and Arrays. Note that 'tableSht' is a Class Object, as well as a Worksheet. Use 'Tablesht&dot' (TableSht.) in code to reference any Custom Properties as well as any Worksheet Items. In Code, Sheets("Tables Sheet") should only reference Sheet Items.
My first thought was to set a global Variable to "CurrentControl" whenever a control is activated, then use a Select Case to call a 'TabKeyDown' sub with all required parameters. Those parameters can be returned by the TableSht Properties.
Unless there is a compelling reason to make all the Procedure names and parameters available to Users, I would just 'hardwire' it all in Code