Did you look at the Python program I gave a link to earlier. Your VB program will have to work in a similar way.
First upload our sketch to the Arduino and leave the Arduino connected to the PC.
Then start your VB program ensuring that it uses the correct Com port.
When the VB program opens the Com port it will cause the Arduino to reset - which takes a little time.
The VB program must wait until the Arduino has completed resetting before it tries to communicate with the Arduino.
A good way to do that is to have the Arduino send a short message at the end of setup() and make the VB program wait until it receives that message before doing anything else.
...R