This sorta goes back to what I was saying before about us needed to be able to build classes eventually. However what I have done to do what you are talking about is made subs that take a scrollview or any other view as a parameter itself so you can call them like this:
I mean the params are up to you, but that's how I added custom items laid out in a scrollview like 3 images in one row etc... it's more complicated than that, but it eases some placement issues by using global variables at the top. It's a bit spaghetti like, but much less so than doing it by hand.
Sub PopulateScrollview
CodeModule.PopulateItems(Scrollview1,SomeItems(),"style1")
End Sub