<< if you want to nitpick then:
dim s as string
s = ""
if len(s) = 0 then
dosomething
end if
is the best way to go, because string comparison is slower than numeric comparison >>
I'm going to have to say, no. String comparison is indeed slower than a numeric comparison, but what you've shown isn't just a numeric comparison. The line...
If Len(s) = 0
Would be much slower than....
If somestring = vbNullString
In the former, you're calling the routine Len(), which has to commence a "procedure prolog", which creates a stack for the called routine. This isn't very computationally expensive, but it's more expensive than doing a simple string comparison. Lets look...
Dim sFoo As String
s = "foo"
Dim sNullString As String
sNullString = vbNullString
If sFoo = sNullString Then
Ok, now what happens? In Visual Basic, a string's length is not determined in the same way a "string" (character array) is in say, C or C++. Visual Basic uses a BSTR (basic string) for it's string data type. The length of the string is at a 4-byte positive offset from the string's address. So, the entire string doesn't have to be compared. If one character is different (or the length is different), they're not equal.
Anyway, the point is, in programming, always (at least initially) write for readability. You may have a tiny possibility of shaving off a nanosecond in the execution time, but it's not worth the hassle as the compiler will optimize the code much better than you can. Write for readability first, speed second.