I was told that the only way to do this was to put visual basic macros in the spreadsheet, but that is not acceptable, because once that happens, every time you open the spreadsheet you have to go through a dialog box or two explaining how dangerous the macros are and do you want to enable or disable them.

I think you can get around this by digitally signing your project and have your users click the (one-time) "Always trust content from tanstaafl". Searching Office Help for "digital certificate" will guide you in the right direction here.