下記のコード うまく動作しません
教えてくれませんでしょぅか
Sub ff()
Worksheets(1).Range("a1").FormatConditions.Add Type:=xlValidateDate, Operator:=xlgrater, Formula1:=Range("b1"), Formula2:=Range("c1")
Worksheets(1).Range("a1").FormatConditions(1).Interior.ColorIndex = 3
Worksheets(1).Range("a1").FormatConditions.Add Type:=xlValidateDate, Operator:=xlLess, Formula1:=Range("b1"), Formula2:=Range("c1")
Worksheets(1).Range("a1").FormatConditions(2).Interior.ColorIndex = 1
End Sub
No.1ベストアンサー
- 回答日時:
このコードというのは、条件付き書式なのでしょうか?入力規則と混ぜ合わせたようなコードです。
Type:=xlValidateDate, というのは、入力規則のプロパティです。
一般的に、マクロで条件付き書式(FormatCondition)を組むというのは、めったにないことです。イベント型マクロに、同様の機能があるからなのです。
このマクロの意図するところは、B列とC列を比較して、B列が多ければ、赤を、B列が少ないなら、黑の背景にしなさい、という命令だと思います。
例えば、このようなコードになります。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rw As Long
If Target.Column <> 2 And Target.Column <> 3 Then Exit Sub
rw = Target.Row
If IsDate(Cells(rw, 2).Text) And IsDate(Cells(rw, 3).Text) Then
If Cells(rw, 2).Value >= Cells(rw, 3).Value Then
Cells(rw, 1).Interior.ColorIndex = 3
Else
Cells(rw, 1).Interior.ColorIndex = 1
End If
Else
Cells(rw, 1).Interior.ColorIndex = xlColorIndexNone
End If
End Sub
No.2
- 回答日時:
気を改めて、元の質問のコードを直してみました。
これは、記録マクロではできないようですね。
xlGreaterとか、xlLess とか不要な気もしますが、入れました。
数式は、"=RC[1]>RC[2]" は、数式をR1C1タイプにしました。
B1>C1 でも同じことですが、単に見かけ上、.Range("A1:A10")でも、可能だと分かるようにしただけです。なお、ほとんど、一回きりのマクロだとは思いますが、私自身、随分長い間、書いたことのないコードです。
'//一応、標準モジュールにしました。
Sub On_FormatCoditions()
With Worksheets("Sheet1")
.Range("A1").FormatConditions.Delete
With .Range("A1").FormatConditions _
.Add(xlExpression, xlGreater, "=RC[1]>RC[2]")
.Interior.ColorIndex = 3 '赤
End With
With .Range("A1").FormatConditions _
.Add(xlExpression, xlLess, "=RC[1]<RC[2]")
.Interior.ColorIndex = 1 '黑
End With
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) 【マクロ】PasteSpecialメソッドにて、コードが動かない理由が分かりません 2 2023/08/15 20:47
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Visual Basic(VBA) Sheet2の日付をキーにオートフィルターで2023年1月のデータを抽出し、Sheet3へ書き出すた 2 2023/03/06 23:57
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
特定のPCだけ動作しないVBAマク...
-
メッセージボックスのOKボタ...
-
EXCELのVBAでRange("A1:C4")を...
-
ExcelのVBA。public変数の値が...
-
一つのTeratermのマクロで複数...
-
マクロの連続実行
-
TERA TERMを隠す方法
-
Excel VBAからAccessマクロを実...
-
ピボットテーブルでの毎回可変...
-
VBAのIF分で時間指定の条件式の...
-
OnTimeを使ったのですが「エラ...
-
エクセルでキーリストからデー...
-
TeraTermマクロの文字列結合
-
エクセルに張り付けた写真のフ...
-
ExcelVBAでPDFを閉じるソース
-
VBA初心者 Ctrl+での操作、ボタ...
-
EXCELのマクロの重複起動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
他人が作ったマクロの理解
-
ExcelVBAでPDFを閉じるソース
-
TERA TERMを隠す方法
-
エクセルで別のセルにあるふり...
-
マクロ実行時、ユーザーフォー...
-
Excel VBAからAccessマクロを実...
-
EXCELのVBAでRange("A1:C4")を...
-
TeraTermマクロの文字列結合
-
PDF出力マクロについて。マクロ...
-
#defineの定数を文字列として読...
-
エクセルのマクロをセルの値に...
-
wordを起動した際に特定のペー...
おすすめ情報