0

これはフォーラムでの最初の質問ですが、以前の質問を読むことは、私が取り組んでいるプロジェクトにとって非常に役に立ちました。これに対する答えが見つかりませんでしたが、見落としがありましたら申し訳ありません。

私は vba で Excel マクロを作成しており、式に変数のブール値と数値コンポーネントが含まれる select case... ステートメントを作成しようとしています。たとえば、マクロは別のワークシートから "> 3" または "< 3" を取得できます。

私の希望は、これらすべてのパラメーターを文字列に割り当てることができることでした。つまり、

test1 = "is " & BoolOperator1 & " " & NumericValue1

その後

Select case ValuetoCompare
    Case test1
      'Do something
    Case test2
       '...

これを行う方法はありますか?別の方法は、演算子を決定する選択関数内の数値変数でケースをネストすることだと思いますが、これはよりエレガントだと思いました。

ご指導ありがとうございました --

ジョシュ

4

1 に答える 1

0

、などBoolOperator1の有効な演算子である文字列と数値を取得すると仮定すると、別の数値でこの比較を実行する最も簡単な方法は、関数を使用することです。これは文字列を VBA として実行し、その結果を返します。>==NumericValue1ValueToCompareEvaluate

あなたの場合、単に使用できます:

If Evaluate(ValueToCompare&BoolOperator1&NumericValue1) Then ...

これをSelect Caseステートメントで使用する場合は、単純なIf ... ElseIf ...ステートメントを使用するか、次のトリックを使用する必要があります。

Select Case True
    Case Evaluate(ValueToCompare&BoolOperator1&NumericValue1): ...
    Case Evaluate(ValueToCompare&BoolOperator2&NumericValue2): ...
    Case Else ...
End Select
于 2014-03-23T19:20:29.237 に答える