|
▼ichinose さん:
ありがとうございます。
>>'============================================================
>>Option Explicit
>>'============================================================
>>Sub main()
>> Dim rng As Range
>> Dim g0 As Long
>> Dim g1 As Long
>> Dim c_array As Variant
>> Dim st1 As Long, ed1 As Long
>> Dim ret As Boolean
>>
>> Set rng = Range("A3", Cells(Rows.Count, 6).End(xlUp))
>> rng.Interior.ColorIndex = xlNone
>>
>>'Cells.Interior.ColorIndex = xlNone★項目行色設定のため上記コードに変更
>> Set rng = Range("b3", Cells(Rows.Count, 2).End(xlUp))
>' ↑これは、実データは、3行目からなのですか?
>' だとしたら・・・、
> If rng.Row > 1 Then 'rng.Row>2 ★okできました
>> init_ovl_chk_tbl
>> For g0 = 1 To rng.Count
>> c_array = get_ovl_chk_tbl(rng(g0, 1).Value)
>> If TypeName(c_array) = "Boolean" Then
>> Call add_ovl_chk_tbl(rng(g0, 1).Value, CLng(rng(g0, 3).Value), _
>> CLng(rng(g0, 4).Value), rng(g0, 5).Value, _
>> rng(g0, 6).Value)
>> Else
>> st1 = CLng(rng(g0, 3).Value)
>> ed1 = CLng(rng(g0, 4).Value)
>> ret = True
>> For g1 = LBound(c_array) To UBound(c_array) Step 4
>> If chk_ovl(st1, ed1, c_array(g1), c_array(g1 + 1)) Then
>> rng(g0).Resize(, 6).Interior.ColorIndex = 35
>' A列が塗りつぶされないでしょ? 良いのですか?
★塗るつぶす方でrng(g0).Resize(-1, 6)としてみたので すがうまくいきませんでした。修正箇所違いますか?
よろしくお願いします。
>' A列も塗りつぶすなら考えてください
>> If rng(g0, 5).Value = c_array(g1 + 2) And _
>> rng(g0, 6).Value = c_array(g1 + 3) Then
>> rng(g0).Resize(, 6).Interior.ColorIndex = 6
>> End If
|
|