This last point in my opinion is ONE major benefit you must seek to extract, if you choose to engage the services of a developer. S/he should be able to help you develop (in_house) expertise needed to maintain the application AFTER s/he is gone. If you fail to ensure this, all your cost_savings from using the application might end up being spent paying the developer to maintain the application over time in the future!
For instance if a company had five drink brands in the market but notices that Brand A, which has a profit margin of at least twice the others is in greatest demand, they could (a) focus production efforts on that brand, so that more bottles go out to trade (b) Apply Best Practice/Continuous Improvement initiatives that would result in lower costs of producing each bottle of Brand A so that even though the market price remains fixed, the company is able to earn increasing profit margins per bottle.
In addition, an Excel VB developer( who in many cases will tend to be a user turned developer, and is therefore likely to easily see things from your perspective) _ unlike a programmer _ is more likely to be positively disposed to working with you to ensure the application meets your practical needs. S/he will readily understand that the final application is meant to help solve a real problem(s), and will therefore build it to match those expectations.
The savings _ from using your "in house" expertise _ in terms of money and man_hours alone, will quickly justify the investment you make in "developing the needed skills" _ especially, when you compare what you spend with the cost of purchasing a commercial software application _ or even engaging the services of an Excel VB developer.
spreadsheet templates for small business
spreadsheet templates for tracking
what is a spreadsheet used for