私はこのようなIF文を書き込もうとしています:
if var [is any of 1,4,5,6,12] then do stuff
しかし、私はこれ以外のVBAの構文を知りません:
if var=1 or var=4 or var=5...
それは少し不器用なようです。別の方法はありますか?
ケースの選択 ステートメントを使用できます。
select case var
case 1,4,5,6,12
'do something
case else
'alternative
end select
数字のリストを作成し、forループでこれらを比較できます。
dim newNumber as Integer
dim compareList as new List Of(int)
for count as integer = 0 to compareList.count - 1
if newNumber = compareList(nCount)
'Do Stuff
end if
next
これは私がやりたい簡単な方法ですが、リストが本当に大きい場合や「if」ループで多くのコードを実行したい場合は、パフォーマンスが集中する可能性があります。
私は「パーティー」に少し遅れていますが、どうですか:
If InStr(1, ",1,5,8", "," & lVal1, vbTextCompare) > 0 Then
「lVal1」が1、5、または8に等しいかどうかを確認します。
そして
If InStr(1, ",6,8,10,12", "," & lVal2, vbTextCompare) = 0 Then
「lVal2」が6、8、10、12に等しくないことを確認します。
コンマ区切り文字は重要です。コンマ区切り文字がないと、最初の例では、「lVal」がこれらの値のいずれかを取得できた場合、「15」または「58」または「158」がすべて一致します。
チェック対象の値にあいまいさがある可能性がある場合は、使用する区切り文字に注意する必要があります。
同様に、検出される値の範囲に関する知識を使用して、最初の文字列の先頭の区切り文字の不格好さ、および区切り文字を検索値の前に連結することを削除できます。