複数の条件を持つif
ステートメントがあります。それらをすべて単一のウィンドウビューで見ることはできません。それらを異なる行に分ける方法はありますか、それともすべてを1行で記述する必要がありますか?
VBA行継続文字はアンダースコア_
if ( _
(something) _
or (somethingelse) _
)
行継続文字_
を使用できます
これらはすべて同じです。
If Something Or SomethingElse Or AnotherThing Then
If Something Or SomethingElse _
Or AnotherThing Then
If Something Or _
SomethingElse Or _
AnotherThing Then
上記のように、アンダースコアを使用すると、1つの「IF」ステートメントで長い条件セットを分割できます。
条件が多すぎて読みにくい場合は、ブール値を使用して条件を表します。もっとコードがあるように思えますが、読みやすいと思います。
次のことを行う必要があるシナリオがある場合:
IF (X = something1) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) OR (X = something2) THEN
END IF
私はこれを行うことができます:
IF _
(X = something1) _
OR (X = something2) _
OR (X = something3) _
OR (X = something4) _
OR (X = something5) _
OR (X = something6) _
OR (X = something7) _
OR (X = something8) _
THEN
END IF
...または私はこれを行うことができます...
blnCondition1 = (X = something1)
blnCondition2 = (X = something2)
blnCondition3 = (X = something3)
blnCondition4 = (X = something4)
blnCondition5 = (X = something5)
blnCondition6 = (X = something6)
blnCondition7 = (X = something7)
blnCondition8 = (X = something8)
IF blnCondition1 OR blnCondition2 OR blnCondition3 OR blnCondition4 OR blnCondition5 OR blnCondition6 OR blnCondition7 OR blnCondition8 THEN
END IF
もちろん、サンプルのBOOLEAN変数が定義されており、blnCondition1のような名前の代わりに、意味のある名前を使用します。
繰り返しますが、それは私が持っている好みです。
アンダースコアでそれらを破る_?
上記のリンクから
If ActiveSheet.ChartObjects(1).Chart.ChartTitle = _
ActiveSheet.Range("a2").Value Then
MsgBox "They are equal."
End If
アンダースコアを使用できると確信しています_
行を分割します。