Yes, you have to do it with VBA. Here's is one option:
Put this in the Sheet module that you want to use vlookup in:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("D1").Value = ActiveCell.Address
End Sub
Then use this as the vlookup formula:
=VLOOKUP(INDIRECT(D1),test,2,FALSE)
Where test is your range, and Indirect(D1) is the value that is set to the ActiveCell from the code above.
See attached working example.