• ベストアンサー

マクロで色が同じになるように設定したい

こんにちは。 現在マクロに挑戦中なのですが、一点分からず戸惑っています。 お分かりになる方教えてください。 下記のマクロを書きました。 Sheet2のセルに数字を入れることによってSheet1のセルの色が変わるようにしています。 25以上の数字は全て青(カラー番号5)表示にしたいのですが、どのように記したら良のか教えてください。 --------------------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim iColors As Variant Dim i As Integer Dim j As Integer iColors = Array(36, 20, 24, 37, 40, 39, 17, 22, 45, 43, 28, 6, 4, 41, 18, 47, 50, 46, 10, 7, 3, 21, 9, 5) For Each c In Target If c.Value <> "" Then If IsNumeric(c.Value) Then i = c.Value If i > 0 And i < 25 Then j = iColors(i - 1) Else j = 2 End If End If End If i = c.Row If i > 2 And j > 0 Then Worksheets("Sheet1").Range("B3:K6").Cells(i - 3).Interior.ColorIndex = j End If Next c End Sub --------------------------------------------------------------- お分かりになる方、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

途中のIf~End Ifだけ書きますが、こんな書き方もできます  i = c.Value  If i <= 0 Then    j = 2  Else    If i >= 25 Then      j = 5    Else      j = iColors(i - 1)    End If  End If また元のロジックを生かすならこんな書き方もありでしょう  i = c.Value  If i >= 25 Then    i = 24  End If  If i > 0 And i < 25 Then    j = iColors(i - 1)  Else    j = 2  End If

iguigu0512
質問者

お礼

ありがとうございます☆ 綺麗に理想通り動きました。 マクロを勉強中でこちらのマクロもネットで調べたり教えてもらいながら書いたものなので・・・まずはこちらを理解し、応用など作ってみながら勉強し直します。 本当にありがとうございました(^0^)/

その他の回答 (2)

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

i = c.Value If i > 0 And i < 25 Then j = iColors(i - 1) Else j = 2 End If の部分ですが i = c.Value j = iColors(i - 1) If i < 25 Then j = 5 End IF If <=0 Then j = 2 End IF ほか i = c.Value Select Case i Case Is <= 0 j = 2 Case Is < 25 j = iColors(i - 1) Case Else j = 5 End Select の様な書き方はいかがでしょうか。

iguigu0512
質問者

お礼

回答ありがとうございます☆ 最初にCaseを使おうと思ったのですが、ズラズラとCaseを使うやり方しか分からなく、25もCaseを書くのが・・・と思っていたのですが、こーゆーやり方もあるんですね! 大変勉強になりました。 ありがとうございます(^^)/

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.2

確認ですが、このマクロは、質問者様が作ったんですよね? このマクロだと、25以上はどうなる(何色になる)のでしょうか?

iguigu0512
質問者

補足

こんにちは。 マクロですが、私が作ったというような教えてもらったというような。。 初心者なのでネット上で調べたり教えてもらいながら書いてみました。 25以上は青(カラー番号5)がずっと続きます。

関連するQ&A