It is not absolute whether you choose one language or another, since they have different uses.
For matlab, it is good for quickly testing the model or algorithm you build.
After testing, you can encapsulate them in to C++ classes for running efficiency.
And for VBA, it is often used to build some visual and user friendly interface, such as John Hull's DG201(DerivaGem).
Besides, some other languages are useful such as SAS code. SAS is especially useful for large scale data modeling.
Sometimes, you may have to do some symbolic programming. In this case, Matlab symbolic tool box or Maple will help.