Primeramenta las subrutinas y funciones(subrutina que devuelve un valor) se definen de manera casi parecida a como lo hace visual basic.
(Public | Private) SUB nombresubrutina (n1 as TipoVariable, n2 as TipoVariable,.....) Codigo a ejecutar END
Pero existen nombres especiales que un programador no le puede poner a sus subrutinas, como:
PUBLIC SUB Main() END
-_New y _free.- se ejecutan al crearse y destruirse un objeto, es decir solo existen en las clases.
Tambien tenemos aquellas que son creadas automaticamente al obdecer a un evento de algun componente como por ejemplo:
miBoton_Click()