Yes, we can omit the first Dim - I get carried away with declaring at times. I create my dim's before I write the code sometimes - as I did with this code.
Sub test()
Dim rng As Range, var As Variant, x As Long, y As Long, z As Long
Set rng = Sheet1.UsedRange
Set rng = rng.Offset(1).Resize(rng.Rows.Count - 1)
var = rng.Value
ReDim oVar((UBound(var)) * (UBound(var, 2) - 1) - 1, 1)
For x = 1 To UBound(var)
For y = 2 To UBound(var, 2)
oVar(z, 0) = var(x, 1)
oVar(z, 1) = var(x, y)
z = z + 1
Next y
Next x
Sheet2.Range("A2").Resize(UBound(oVar) + 1, UBound(oVar, 2) + 1) = oVar
End Sub
may as well share the file I was playing with for reference, attached.