Dim buttons As MSH.HTMLElementCollection
Wrong type. That should be an IHTMLElementCollection instead. Note the leading I. The MSDN page is here.
The type that is missing the I is a coclass, not an interface. Used by scripting clients when they want to create their own collection object.