Visual Basic 2010 + Arduino Serial

Split the problem into two.

In the Arduino sketch replace:

int val = Serial.read() - '0'; // deduct ascii value of '0' to find numeric value of sent number
if (val == 1) { // test for command 1 then turn on LED

with

int val = Serial.read() - '0'; // deduct ascii value of '0' to find numeric value of sent number
val = 1;
if (val == 1) { // test for command 1 then turn on LED

This will force the sketch to output the data without receiving the command to do so.
Open serial monitor in the Arduino IDE, setting the correct baud rate and watch the data come up on the screen.
If it does not come up as expected, put in some Serial.print commands through the sketch to track the problem.
When fixed, remove the "val = 1;" and try using serial monitor to pass the "1" command to the sketch and see if it works as expected.
Fix, if necessary using method above.

If this works but it is not working with your VB program go to somewhere like http://www.vbforums.com/ to resolve the VB problem.
(When testing serial input into VB programs I use Terminal or Putty to put characters out one serial port and into the another linked to the VB program. This way you know for sure what is being fed into the VB program and you can track its reception using the in-line debugging. You could just leave the "val = 1" in the arduino sketch (after you have debugged it) so you have a constant stream into your VB program and track it using in line break points.)