VB.net and Arduino communication problem

      if (a == 33) {
        digitalWrite (8, HIGH);
      }
      
      if (a == 34) {
        digitalWrite (8, LOW);
      }

Why do you want to go look at the ASCII table every time you add a value being sent?

After looking at the ASCII table for the values 33 and 34, I guess my real question is what the f**k?

Why not send something sensible, instead?