Another thing to add in to what Jeff said is if you are a contractor working on this, make sure to include your support costs for if/when the application fails. For example, if the end user upgrades Excel, will your application continue to work? What if they have an ancient version that they use (such as 2000), does your application support that?
As this is your first software development proposal, I would start by writing one following Jeff's advice and then save that somewhere. Next, modify it to be as generic as possible so you can use it for a template in the future.
Last thing to remember with the cost of software is the cost of software support. How long are you offering support for with the cost of the software? Is support a paid service or is it included for the lifetime of the product? I wouldn't include that in the software development proposal, but make sure to get it in writing so everyone is on the same page in terms of support. May want to figure out payment terms too. Is it payment on successful delivery of the tool or 10% up front or payment at each milestone?
Also, get as much communication related to the project in writing and get sign off on all documents from the stakeholders.
Most of my advice above is unrelated ot a software development proposal, but it is stuff you will want to keep in mind while developing it. Also, make sure to get things "feature locked" prior to development starting.
The above is all just my opinion on what you should do.
As with all advice you find on a random internet forum - you shouldn't blindly follow it. Always test on a test server to see if there is negative side effects before making changes to live!
I recommend you NEVER run "random code" you found online on any system you care about UNLESS you understand and can verify the code OR you don't care if the code trashes your system.