Это сложно.
Как и Java, языки .Net (включая C # и VB) компилируются до языка, подобного байт-коду, называемого IL (Intermediate Language). Этот IL - то, что затем распространяется на другие компьютеры.
Однако на этом все не заканчивается. IL, в свою очередь, компилируется в нативный код компилятором JIT (как раз вовремя) до того, как он будет фактически выполнен. И да, vb, как и все языки, можно разобрать.