Si la variable no es muy complicada (me refiero a una string, o un integer, etc.) todos los formularios tienen una propiedad que VB no la usa internamente, que es TAG. Es de tipo string y de ámbito global dentro del formulario, así que solo tienes que darle el valor de la variable que quieras pasar, por ejemplo:
Private Sub Form1_Unload
Form2.Tag = VariableCadena
End Sub
...
Form2.Show
...
Si la variable es demasiado complicada (un TextBox, un FileSystemObject, etc.) entonces debes crear una variable global del mismo tipo en el Form2, ya sabes, hay que declararla en la parte de arriba del código del formulario, y entonces haces lo siguiente:
Private Sub Form1_Unload
Set Form2.VariableRara = LoQueSea
End Sub
....
Form2.Show
....
Saludos
Josetxu