どうすれば達成できますか:
if X in (1,2,3) then
それ以外の:
if x=1 or x=2 or x=3 then
言い換えれば、IN
VBA for Excel の演算子をどのように真似ることができるのでしょうか?
どうすれば達成できますか:
if X in (1,2,3) then
それ以外の:
if x=1 or x=2 or x=3 then
言い換えれば、IN
VBA for Excel の演算子をどのように真似ることができるのでしょうか?
非常にエレガントな解決策はないと思います。
ただし、次のことを試すことができます。
If Not IsError(Application.Match(x, Array("Me", "You", "Dog", "Boo"), False)) Then
または、独自の関数を作成できます。
Function ISIN(x, StringSetElementsAsArray)
ISIN = InStr(1, Join(StringSetElementsAsArray, Chr(0)), _
x, vbTextCompare) > 0
End Function
Sub testIt()
Dim x As String
x = "Dog"
MsgBox ISIN(x, Array("Me", "You", "Dog", "Boo"))
End Sub
IFの代わりにCASEステートメントを試すこともできます
Select Case X
Case 1 To 3
' Code to do something
Case 4, 5, 6
' Code to do something
Case 7
' Code to do something
Case Else
' More code or do nothing
End Select
試しましたか
eval("3 in(1,2,3,4,5)")
私が知っているものはありません。
私は通常、 http: //www.freevbcode.com/ShowCode.asp? ID=1675 にあるような自家製の InArray() 関数を使用します。
データ型により適している場合は、連結する代わりに配列を反復処理するバージョンを作成することもできます。
今書きました…
Public Function IsInArray(FindValue As Variant, ParamArray arrEmailAttachment()) As Boolean
Dim element As Variant
For Each element In arrEmailAttachment
If element = FindValue Then
IsInArray = True
Exit Function
End If
Next element
IsInArray = False
End Function