セルのステートメントのリストを評価し、その結果をコレクションオブジェクトに渡すことができます。しかし、最初の真の文が見つかったときにIf/elseifが評価を停止すると、Select Caseも同じです。VBA - 1つ以上が真である場合にすべてのステートメントを評価する
これを行うために使用できる他の方法はありますか?
Dim BorderColl As Collection
Set BorderColl = New Collection
If RngCell.Borders(xlDiagonalDown).LineStyle <> xlNone Then
BorderColl.Add "xlDiagonalDown", LCase("xlDiagonalDown")
ElseIf RngCell.Borders(xlDiagonalUp).LineStyle <> xlNone Then
BorderColl.Add "xlDiagonalUp", LCase("xlDiagonalUp")
ElseIf RngCell.Borders(xlEdgeBottom).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeBottom", LCase("xlEdgeBottom")
ElseIf RngCell.Borders(xlEdgeLeft).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeLeft", LCase("xlEdgeLeft")
ElseIf RngCell.Borders(xlEdgeRight).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeRight", LCase("xlEdgeRight")
ElseIf RngCell.Borders(xlEdgeTop).LineStyle <> xlNone Then
BorderColl.Add "xlEdgeTop", LCase("xlEdgeTop")
End If
時には答えがとても分かりますが、心が機能しなくなりました...ありがとうございます! –
これは完全に良い解決策ですが、私は2つの部分の間にブレークポイントを置かないようにするために ":"を使用することをお勧めします。 – aevanko
Issun完全に真実なのですが、ロジックがとてもシンプルなので、これらのケースで使用します。最後にコレクションを見て、何が間違っているのかを教えてくれます。 –