May this help you??
Code
<font face=Courier New><SPAN style="color:#00007F">Public</SPAN> OldSetMat(1 To 201, 1 To 2) <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN>
<SPAN style="color:#00007F">Sub</SPAN> StoreValues()
<SPAN style="color:#007F00">'</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> CBar <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Object</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> PointR <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
PointR = 1
OldSetMat(UBound(OldSetMat, 1), 1) = CommandBars.Count
<SPAN style="color:#00007F">For</SPAN> <SPAN style="color:#00007F">Each</SPAN> CBar <SPAN style="color:#00007F">In</SPAN> CommandBars
OldSetMat(PointR, 1) = CBar.Name
OldSetMat(PointR, 2) = <SPAN style="color:#00007F">CStr</SPAN>(CInt(CBar.Visible))
PointR = PointR + 1
<SPAN style="color:#00007F">Next</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
<SPAN style="color:#00007F">Sub</SPAN> ReStoreValues()
<SPAN style="color:#007F00">'</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> CBar <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Object</SPAN>
<SPAN style="color:#00007F">Dim</SPAN> PointR <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>
<SPAN style="color:#00007F">For</SPAN> PointR = 1 <SPAN style="color:#00007F">To</SPAN> OldSetMat(UBound(OldSetMat, 1), 1)
CommandBars(OldSetMat(PointR, 1)).Visible = (OldSetMat(PointR, 2) <> "0")
<SPAN style="color:#00007F">Next</SPAN> PointR
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN></FONT>
On place of Public Variable, You could also use two columns of a (hidden) worksheet to store values.
Post for feedback
Ciao