
test1は、A~X列に数字と条件付き書式をセットするマクロですが、途中のセルから色化けします。
原因がお分かりの方はご教授ください。どうもExcel2010のバグのように思われます。
バグならMicrosoftのどこに報告あるいは問い合わせれば良いでしょうか。
Sub test1()
Dim aRow As Long
Dim aCol As Long
With ActiveSheet
For aRow = 1 To 3
For aCol = 1 To 25
.Cells(aRow, aCol).Value = aCol
Call SetFormatConditionOfColor(aRow, aCol, "=1")
Next
Next
End With
End Sub
Public Sub SetFormatConditionOfColor(ByVal aRow As Long, ByVal aCol As Long, ByVal aFormula As String)
With ActiveSheet.Cells(aRow, aCol)
.FormatConditions.Delete
'一致するセル
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:=aFormula
With .FormatConditions(1)
.Font.Color = 0
.Interior.Color = 13434879
End With
'一致しないセル
.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:=aFormula
With .FormatConditions(2)
.Font.Color = 16777215
.Interior.Color = 16767843
End With
End With
End Sub
OS: MS WindowsXP Professional Service Pack3
Excel: Microsoft Office Professional Plus 2010 14.0.5128.5000(32ビット)
No.2ベストアンサー
- 回答日時:
2010のバグでしょうね。
#ver2007では発生しないようですが
#2007以降の条件付き書式はバグの温床みたいで個人的には鬼門認定してます。:)
同じ処理をするには
Sub test2()
With ActiveSheet.Range("A1").Resize(3, 25)
.Formula = "=column()"
.Value = .Value
With .FormatConditions
.Delete
With .Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=1")
.Font.Color = 0
.Interior.Color = 13434879
End With
With .Add(Type:=xlCellValue, Operator:=xlNotEqual, Formula1:="=1")
.Font.Color = 16777215
.Interior.Color = 16767843
End With
End With
End With
End Sub
のように、同条件で範囲をまとめて設定できる場合はできるだけ
まとめて処理してLoop処理を繰り返さないほうが良いでしょうね。
でも、このtest2自体も
Sub tes3()
Dim i As Long
For i = 0 To 30
With ActiveSheet.Range("A1").Resize(3, 25).Offset(i * 3)
:
:
と繰り返してしまうと同じ現象が発生してしまいますね。
で、他の事例で通用するかどうかわかりませんが
一旦、Addしてしまった後に、Index指定で設定したほうが良さそう。
Sub SetFormatConditionOfColor(ByVal aRow As Long, _
ByVal aCol As Long, _
ByVal aFormula As String)
With ActiveSheet.Cells(aRow, aCol).FormatConditions
.Delete
.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:=aFormula
.Add Type:=xlCellValue, Operator:=xlNotEqual, Formula1:=aFormula
With .Item(1)
.Font.Color = 0
.Interior.Color = 13434879
End With
With .Item(2)
.Font.Color = 16777215
.Interior.Color = 16767843
End With
End With
End Sub
>バグならMicrosoftのどこに報告あるいは問い合わせれば良いでしょうか。
[マイクロソフト サポート オンライン]
https://support.microsoft.com/oas/default.aspx?& …
参照してください。
>マクロや VBA、Excel ピボットテーブル、サーバー製品との連携機能に関するお問い合わせは、
>無償サポートの対象外となります。
>コミュニティ サイト Microsoft Answers
>または 有償プロフェッショナル サポート をご検討ください。
http://www.microsoft.com/japan/services/support/ …
とあります。
インシデント制ですが、
http://support.microsoft.com/kb/875474/ja
『お客様のお問い合わせの内容が弊社製品の不具合によるものだった場合、インシデントは消費されません。』
だそうです。
私は利用した事がないので、経験談が必要なら他の方のレスを待ってみてください。
詳細なご回答ありがとうございます。
条件付き書式がバグの温床とは初めて知りました。
実際のプログラムではFormulaの部分が"=1"ではなく相対参照を使ったちょっと複雑な数式になっています。
ここで質問した色化けの不具合とは別に、セルをコピーすると相対参照のはずが絶対参照として書式がコピーされてしまうという不具合も生じています。
したがって条件付き書式を使うのは諦めることにしました。レスポンスは落ちますが他の方法を考えることにします。いろいろとありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
条件付書式で「=#N/A」に色を付...
-
条件付き書式で、結果が1行ずれる
-
【Excel】条件付き書式で 0では...
-
エクセルで特定の数字等を表示...
-
Excel にて条件付き書式の色に...
-
エクセルで日付を入力したらカ...
-
セル結合させてるときの 条件...
-
エクセルで1以上は全て1にするには
-
エクエルで隣のセルの文字が赤...
-
Excelの条件付き書式にて空白セ...
-
エクセルの枠の中の文字が青文...
-
【エクセル】シフトで○が6個以...
-
Excel 条件付書式 今日より3日...
-
ピボットテーブルオプション「...
-
Excelのテキストボックスでフォ...
-
エクセル内で複数の文字(50個ぐ...
-
条件付き書式で太罫線を引く方法
-
エクセルのリストボックスの値...
-
【エクセル】今日の日付に赤枠...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
条件付き書式で、結果が1行ずれる
-
条件付書式で「=#N/A」に色を付...
-
エクセルで特定の数字等を表示...
-
Excel にて条件付き書式の色に...
-
【Excel】条件付き書式で 0では...
-
Excelの条件付き書式にて空白セ...
-
エクセルの枠の中の文字が青文...
-
エクセルで1以上は全て1にするには
-
エクセル:文字色を認識して○×...
-
条件付き書式で太罫線を引く方法
-
一つ上のセルと同じセルに色を...
-
【エクセル】シフトで○が6個以...
-
Excel 条件付書式 今日より3日...
-
セル結合させてるときの 条件...
-
ピボットテーブルオプション「...
-
エクセルでシート参照する場合...
-
エクエルで隣のセルの文字が赤...
-
エクセル内で複数の文字(50個ぐ...
-
【エクセル】今日の日付に赤枠...
おすすめ情報