Storing and Retrieving data with User Forms in Excel 2010
See this related question:
https://stackoverflow.com/questions/7589579/is-it-possible-to-store-elements-of-array-permanently-in-vba-in-excel

Summary:
To store data persistently in the workbook using VBA, you have a few options:


Store it in another worksheet. If you don't want the user to be able to see the worksheet, Sheets("ArrayValuesWorksheet").Visible = xlVeryHidden
Create a defined name which has the desired data as its value. Names("MyArrayData") = myArray
Store it in ThisWorkbook.CustomDocumentProperties -- see https://stackoverflow.com/questions/17406585/vba-set-custom-document-property
Store it in a CommandBar, hopefully the user won't find it
Use a helper XLL which can call Excel4(xlDefineBinaryName,...) and Excel4(xlGetBinaryName)


I believe storing in a hidden sheet is the most common.