Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


16054 / 76734 ←次へ | 前へ→

【66153】Re:【再質問】条件付き書式について
回答  りん E-MAIL  - 10/8/5(木) 18:55 -

引用なし
パスワード
   助けてください。 さん、こんばんわ。

>>今手元にXL2007がないのですが、XL2007では条件付書式の条件はいくつまで可能なんでしょうか?
>調べてみると、Excel2007では64件だそうです。
それなら6つくらい余裕ですね。

問題点をみつけました。

  areaA1:条件1 areaA2:条件1  areaA3:条件1
  Range(areaA1).FormatConditions.Add  問題ないので略
  
  areaA2:条件2  areaA3:条件2
  Range(areaA2).FormatConditions.Add 〜
  Range(areaA2).FormatConditions(1) 〜
  ↑今回追加したものはRange(areaA2).FormatConditions(2)
  
  areaA3:条件3
  Range(areaA3).FormatConditions.Add  〜
  Range(areaA3).FormatConditions(1) 〜
  ↑今回追加したものはRange(areaA3).FormatConditions(3)

  
  areaA1:条件2 areaA2:条件3  areaA3:条件4
  Range(areaA1).FormatConditions.Add  〜
  Range(areaA1).FormatConditions(2) 〜
  ↑今回追加したものはRange(areaA1).FormatConditions(1)
  ↑今回追加したものはRange(areaA2).FormatConditions(3)
  ↑今回追加したものはRange(areaA3).FormatConditions(4)
  
  areaA2:条件4  areaA3:条件5
  Range(areaA2).FormatConditions.Add 〜
  Range(areaA2).FormatConditions(2) 〜
  ↑今回追加したものはRange(areaA2).FormatConditions(4)
  ↑今回追加したものはRange(areaA3).FormatConditions(5)
 
  areaA3:条件6
  Range(areaA3).FormatConditions.Add 〜
  Range(areaA3).FormatConditions(2) 〜
  ↑今回追加したものはRange(areaA3).FormatConditions(6)


範囲が重複しているので、インデックス値がずれています。

なので、条件式を追加した時にwithでそのまま書式を設定するようにしました。
ついでに配列に入れて整理しました。

Sub Macro9()
  'ループさせるために配列で処理
  Dim areaA(1 To 3) As String '範囲をあらわす文字列
  Dim s1(1 To 3, 1 To 2)    '条件式の文字列
  Dim II As Long, TP As Long
  '内容をセット
  areaA(1) = "$H$56:$X$456"
  areaA(2) = "$P$56:$X$456"
  areaA(3) = "$Q$56:$X$456"
  '条件式
  s1(1, 1) = "=NOT(EXACT(TRIM($H56),""""))" 'area1 条件1,area2 条件1,area3 条件1
  s1(2, 1) = "=NOT(EXACT(TRIM($P56),""""))" 'area2 条件2,area3 条件2
  s1(3, 1) = "=NOT(EXACT(TRIM($Q56),""""))" 'area3 条件3
  s1(1, 2) = "=EXACT($BB56,0)"       'area1 条件2,area2 条件3,area3 条件4
  s1(2, 2) = "=EXACT($BC56,0)"       'area2 条件4,area3 条件5
  s1(3, 2) = "=EXACT($AA56,$AA$45)"     'area3 条件6
  
  '条件消去
  Cells.FormatConditions.Delete
  '
  For TP = 1 To 2
    For II = 1 To 3
      With Range(areaA(II))
        .Cells(1).Select
         With .FormatConditions.Add(Type:=xlExpression, Formula1:=s1(II, TP))
          .StopIfTrue = False
          If TP = 1 Then
            With .Borders(xlTop)
              .Weight = xlThin
              .LineStyle = xlContinuous
            End With
          Else
            .Interior.ColorIndex = 16
          End If
        End With
      End With
    Next
  Next
  '
  Erase areaA, s1
End Sub

2007がないので.StopIfTrueや4つめ以降の条件は試せていませんが、とりあえず設定はできているようでした。

1 hits

【66105】条件付き書式について 助けてください。 10/7/30(金) 15:03 質問
【66106】Re:条件付き書式について よろずや 10/7/30(金) 19:06 発言
【66118】Re:条件付き書式について 助けてください。 10/8/2(月) 10:15 質問
【66114】Re:条件付き書式について UO3 10/7/31(土) 18:09 発言
【66119】Re:条件付き書式について 助けてください。 10/8/2(月) 10:18 お礼
【66146】【再質問】条件付き書式について 助けてください。 10/8/4(水) 17:44 質問
【66147】Re:【再質問】条件付き書式について りん 10/8/5(木) 16:38 発言
【66152】Re:【再質問】条件付き書式について 助けてください。 10/8/5(木) 17:40 質問
【66153】Re:【再質問】条件付き書式について りん 10/8/5(木) 18:55 回答
【66160】Re:【再質問】条件付き書式について 助けてください。 10/8/6(金) 9:38 質問
【66190】Re:【再質問】条件付き書式について りん 10/8/6(金) 21:06 発言
【66154】Re:【再質問】条件付き書式について りん 10/8/5(木) 19:07 発言
【66161】Re:【再質問】条件付き書式について 助けてください。 10/8/6(金) 9:45 回答

16054 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free