Refer to Excel cell in Table by header name and row number
A shorter answer is:
MsgBox [MyTable].Cells(2, [MyTable[MyColumn]].Column)
Much cleaner and easier!
In your example, something like this:
Dim tb As ListObject
'assumes Table is the first one on the ActiveSheet
Set tb = ActiveSheet.ListObjects(1)
MsgBox tb.DataBodyRange.Cells(2, tb.ListColumns("header4").Index)