I come from the beautiful world of Obj C, which is based on the C programming language, and I\'ve fallen in love with finding quirky ways to save space. However, I\'ve looke
Sub test()
Dim x As Long
Dim y As Long
y = 1
x = IIf(y = 1, 1, 2)
End Sub
As an alternative you can create the following public function in a module:
Public Function iff(expr, trueR, falseR) As Variant
If expr Then iff = trueR Else iff = falseR
End Function
So far works for me.
the closest function is IIf()
IIf(expr, truepart, falsepart)
but:
you can't have its branches simply running code, while you have to assign its return value to some variable,
it doesn't short-circuit,
it always evaluates both branches so that should one of them fail, even if not the "real" one, the statement would throw an error anyway.
So the most resembling statement is:
If boolVar Then sub1 Else sub2
where:
boolVar
is a boolean type variable,
sub1
and sub2
are two different subs/functions to be called.