|
こんにちわ。
▼助けてください。 さん:
>質問文が説明不足でした申し訳ございません。
>下記に想定と発生した問題を記載いたします。
>ご助力よろしくお願い致します。
>
>>どのように想定したのか?
>マクロに記載の範囲3つ(AreaA1〜AreaA3)に下記のように条件書式を
>2つづつ設定したいと考えております。
>AreaA1 = "$H$56:$X$456"には
> 1)条件 =NOT(EXACT(TRIM($H56),""""))
> 書式 上線
> 2)条件 "=EXACT($BB56,0)"
> 書式 塗りつぶし
>
>今までは上記の条件書式を手動で設定していたのですが、
>対象範囲内でセル結合されると上記範囲が崩れてしまうため、
>マクロで設定し直す機能を追加しようとしております。
>
>>実際にはどうなったのか?
>マクロを実行したところ、
> 「実行時エラー'1004':
> BorderクラスのLineStyleプロパティを設定できません」
今手元にXL2007がないのですが、XL2007では条件付書式の条件はいくつまで可能なんでしょうか?
Sub Macro9()
↓Q56:X456(areaA3)が3つで重複宣言
areaA1 = "$H$56:$X$456"
areaA2 = "$P$56:$X$456"
areaA3 = "$Q$56:$X$456"
Cells.Select
↓ここで条件つき書式はクリア
Selection.FormatConditions.Delete
↓一つ目の条件設定
Range(areaA1).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(EXACT(TRIM($H56),""""))"
↓二つ目の条件設定
Range(areaA1).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=EXACT($BB56,0)"
(略)
↓三つ目の条件設定
Range(areaA2).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(EXACT(TRIM($P56),""""))"
(略)
↓四つ目の条件設定 areaA3に対しては初めてだけど、実際は4つめ。
Range(areaA3).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOT(EXACT(TRIM($Q56),""""))"
(略)
↓五つ目の条件設定
Range(areaA2).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=EXACT($BC56,0)"
(略)
↓六つ目の条件設定
Range(areaA3).FormatConditions.Add Type:=xlExpression, Formula1:= _
"=EXACT($AA56,$AA$45)"
(略)
End Sub
というふうに、areaA3に6つの条件を追加しようとしています。
質問の内容からすると適用したい条件は2つみたいなので、指定する範囲を見直すか、設定する時にクリアするようにしてみては?
範囲をみなおす場合
areaA1 = "$H$56:$O$456"
areaA2 = "$P$56:$P$456"
areaA3 = "$Q$56:$X$456"
設定をクリアする場合(もっとコンパクトにできると思いますが、ざっとwithでくくってあります)
Sub Macro9()
areaA1 = "$H$56:$X$456"
areaA2 = "$P$56:$X$456"
areaA3 = "$Q$56:$X$456"
'関係ないところにもあるかもしれないので一応
Cells.FormatConditions.Delete
'
With Range(areaA1)
.Cells(1).Select '数式の基準セル選択(しないと予定外の結果になります)
.FormatConditions.Delete '初期化
.FormatConditions.Add Type:=xlExpression, Formula1:="=NOT(EXACT(TRIM($H56),""""))"
.FormatConditions(1).StopIfTrue = False
With .FormatConditions(1).Borders(xlTop)
.Weight = xlThin
.LineStyle = xlContinuous
End With
.FormatConditions.Add Type:=xlExpression, Formula1:="=EXACT($BB56,0)"
.FormatConditions(2).StopIfTrue = False
.FormatConditions(2).Interior.ColorIndex = 16
End With
'
With Range(areaA2)
.Cells(1).Select '数式の基準セル選択(しないと予定外の結果になります)
.FormatConditions.Delete '初期化
.FormatConditions.Add Type:=xlExpression, Formula1:="=NOT(EXACT(TRIM($P56),""""))"
.FormatConditions(1).StopIfTrue = False
With .FormatConditions(1).Borders(xlTop)
.Weight = xlThin
.LineStyle = xlContinuous
End With
.FormatConditions.Add Type:=xlExpression, Formula1:="=EXACT($BC56,0)"
.FormatConditions(2).StopIfTrue = False
.FormatConditions(2).Interior.ColorIndex = 16
End With
'
With Range(areaA3)
.Cells(1).Select '数式の基準セル選択(しないと予定外の結果になります)
.FormatConditions.Delete '初期化
.FormatConditions.Add Type:=xlExpression, Formula1:="=NOT(EXACT(TRIM($Q56),""""))"
.FormatConditions(1).StopIfTrue = False
With .FormatConditions(1).Borders(xlTop)
.Weight = xlThin
.LineStyle = xlContinuous
End With
.FormatConditions.Add Type:=xlExpression, Formula1:="=EXACT($AA56,$AA$45)"
.FormatConditions(2).StopIfTrue = False
.FormatConditions(2).Interior.ColorIndex = 16
End With
End Sub
|
|