I don't think there is any single answer for all occasions.
If the list is very short and fixed use a series of tests with Or:
If personName = "John" Or personName = "George" Or personName = "Harry" Then
A mid-sized list could be represented as a String as suggested already, with a slight optimization:
If InStr("$John$George$Harry$", "$" & personName & "$") Then
You might also use an array as your list, along with Filter():
If UBound(Filter(Array("$John$", "$George$", "$Harry$"), _
"$" & personName & "$")) >= 0 Then
Those options probably work better if you have a pre-built String or Array rather than inlining them within an expression.
For a longer list you might use a Scripting.Dictionary object to hold the test cases. This incorporates a collision-resolved hash, and it has an Exists() method. A VB6 Collection works too though you need to use exception trapping to implement Exists-like functionality.
Even better if you have multiple "fields" to test (name and eye color?) you can use a fabricated ADO Recordset and its Filter property. This makes it easy to determine whener you have the George with blue eyes or the Harry with brown eyes. For a longer list of candidates you can set the dynamic property Optimize to True on the Recordset's Fields you want hashed for better performance.