- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:変数に範囲もしくはワイルドカードを指定する方法)
変数に範囲もしくはワイルドカードを指定する方法
このQ&Aのポイント
- Excelで変数に範囲もしくはワイルドカードを指定する方法を教えてください。
- 特定の列の計算結果を条件にセルの色を変えるVBAのコードの中で、特定の変数だけを使用する方法を知りたいです。
- 他に効率的な方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
範囲を指定して使いたいような値を、個別の変数に入れるのは、かなり無理があります。 配列を使います。 a(0)= 2 a(1) = -2 省略 a(6) = 4 こうすれば、Cells(i,"E")はCells(i,5)と同じですから Cells(i,5).Value と a(0) Cells(i,5+1).Value と a(0)+a(1) Cells(i,5+2).Value と a(0)+a(1)+a(2) ... と、いかにもループで簡単に書けそうな感じです。 条件のAndですが count=0 ... ' sum_a = a(0)+a(1)+...+a(j) if Cells(i,5+j) = sum_a then count=count+1 ... 等と条件が成立している数を数えて、 if count = 範囲の数 then 赤く塗る のように判定するとか Dim flag as Boolean flag=True ... flag = flag and (Cells(i,5+j) = sum_a) ... if flag then 赤く塗る 等と、Booleanの変数を使って直接and演算をするとかできます。
その他の回答 (1)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
回答No.1
ワイルドカードとかいうお話は、何が何だか分かりません。 Dim x As Double x = -123.45 Debug.Print Abs(x) Debug.Print Abs(x) < 100
質問者
お礼
んー、ごめんなさい、私の知識では解読できませんでした。 こちらで勉強しておきます。
お礼
お教え頂いたマクロを解読し、自分なりに組み立ててみて、 変数Limitにより上限値を設定することができました。 ただ、for j = 0 to Limitを二回使用しているので、もっとシンプルにできるはずなのですが、簡略化の仕方を教えて頂けませんか? 色々試してみたのですが、うまくいきませんでした。 Sub l() Dim a(6) As Integer Limit = 2 a(0) = a(1) = 省略 a(6)= sum = 0 For j = 0 To Limit sum = sum + a(j) Next j ActiveSheet.Select Dim flag As Boolean For i = 1 To 100 For j = 0 To Limit flag = True flag = flag And (Cells(i, 5 + j) = sum) If flag Then Cells(i, 5).Interior.Color = RGB(255, 0, 0) Next j Next i End Sub