- ベストアンサー
エクセルマクロに詳しい方
すいません教えて下さい。 例えば、A1のセルに30、A2のセルに5 A3のセルに7 といった感じで数字があるとして どこかの列のある位置 を基準として 例えば C列の先頭から A1のセルにある 数字の分だけ色分けるマクロってどのようになるのでしょうか この場合 C1からC30までが黒 C31~35までは緑 といった具合にしたいのです。 A列に入る数字は必ずしも 一定ではありません。 できましたら、 マクロを簡単に書いて頂けると大変うれしいです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
同じくVBAで Sub Macro1() Dim val As Range, setCell As Range Dim colors(16), colorIndex Dim basePos, setPos, lines colors(0) = vbBlack colors(1) = vbGreen colors(2) = vbRed colors(3) = vbYellow colors(4) = vbBlue colors(5) = vbMagenta colors(6) = vbCyan colors(7) = vbWhite colors(8) = RGB(204, 255, 255) Set val = Range("A1") Set setCell = Range("C1") basePos = 0: setPos = 0: colorIndex = 0 Do While (val.Offset(basePos).Value <> "") lines = val.Offset(basePos).Value With Range(setCell.Offset(setPos), setCell.Offset(setPos + lines - 1)).Interior .color = colors(colorIndex) .Pattern = xlSolid End With colorIndex = colorIndex + 1 basePos = basePos + 1 setPos = setPos + lines Loop End Sub
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17070)
もう既に回答は出ていますが、ご参考に。 Sub test01() Dim sh1 As Object c = Array("", 2, 3, 4, 5, 6) Set sh1 = Worksheets("Sheet1") b = Selection.Column d = sh1.Range("A65536").End(xlUp).Row f = 1 For i = 1 To d a = sh1.Cells(i, "A") sh1.Range(sh1.Cells(f, b), sh1.Cells(f + a - 1, b)).Interior.ColorIndex = c(i) f = f + a Next i End Sub シート名を修正してください。 色コード定義(Array)がA列の行数より 大かとか指定列が適当かなどのチェックは入れてません。 付け加えてください。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 VBAなら、こんな感じ。 Sub macro() Dim i As Long Dim cnt As Long Dim temp As Long Columns("C:C").Interior.ColorIndex = xlNone cnt = 1 temp = Range("A1").Value Cells(cnt, 3).Resize(temp).Interior.ColorIndex = 3 cnt = cnt + temp temp = Range("A2").Value Cells(cnt, 3).Resize(temp).Interior.ColorIndex = 41 cnt = cnt + temp temp = Range("A3").Value Cells(cnt, 3).Resize(temp).Interior.ColorIndex = 50 End Sub 色は適当です。 A列の数値データが多いなら、カラーインデックスを配列などに入れておいて、ループで廻してもいいでしょう。
- mshr1962
- ベストアンサー率39% (7417/18945)
3色までなら条件付き書式でも出来そうですね。 C列を選択、「書式」「条件付き書式」で 条件1「数式が」「=ROW()<=$A$1」で書式で色を黒 条件2「数式が」「=ROW()<=SUM($A$1:$A$2)」で書式で色を緑 条件3「数式が」「=ROW()<=SUM($A$1:$A$3)」で書式で色を赤