Welcome to the Board!
To declare a variable globally, at the top of any module, put "Public X As Whatever", String, Object, etc.
In your sheet module, set X = Whatever then your Cell Range = X. If you want to call the variable from the sheet and not from VBA, you'd need to write a Uder Defined Function (UDF).
As for the second part, No. But you get download the free Excel Viewer from Microsoft. It's esssentially a non-functional version of Excel. But it won't do you any good if your users already have Excel.
Understanding that Excel is not a secure environment, you can do a lot with worksheet/workbook protection that the average user will never be able to get around. Just understand that someone who wants in can.
Hope that helps,
Smitty