それでいいけど、外部関数がセットするだけならyを初期化する必要もないよ。
Dim z As B
Hoge(z)
Console.WriteLine(z.y(0).x)