下記のこーどを実行すると
上のコードだけ実行されます。
どこをなおしらよいのか。
わかる方おしえてくれませんでしょうか
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("E:E,G:G")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Row Mod 2 = 0 Then
If IsDate(.Value) Then
Cells(.Row, "A").Interior.ColorIndex = 6
End If
End If
End With
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.1ベストアンサー
- 回答日時:
そのコードは、二人の人物が書いたもののようですから、なるべく書法は合わせるようにしてみました。
内容については未検証です。Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E:E,G:G")) Is Nothing Then
If .Row Mod 2 = 0 Then
If IsDate(.Value) Then
Cells(.Row, 1).Interior.ColorIndex = 6
End If
End If
ElseIf Not Intersect(Target, Range("B:C")) Is Nothing Then
If IsDate(Cells(.Row, 2).Text) And IsDate(Cells(.Row, 3).Text) Then
If Cells(.Row, 2).Value >= Cells(.Row, 3).Value Then
Cells(.Row, 1).Interior.ColorIndex = 3
Else
Cells(.Row, 1).Interior.ColorIndex = 1
End If
Else
Cells(.Row, 1).Interior.ColorIndex = xlColorIndexNone
End If
End If
End With
End Sub
No.3
- 回答日時:
No.2です。
投稿後気づきました。
A列の「色なし」が抜けていました。
>Cells(.Row, "A").Interior.ColorIndex = 1
>End If
の次に
>Else
>Cells(.Row, "A").Interior.ColorIndex = xlNone
の2行を追加してください。
どうも失礼しました。m(_ _)m
No.2
- 回答日時:
こんばんは!
>If Intersect(Target, Range("E:E,G:G")) Is Nothing Or Target.Count > 1 Then Exit Sub
の1行でE・G列以外はチェンジイベントを発生させないようにしているので、
ここでB・C列も加える必要があります。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B:C,E:E,G:G")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
If .Column > 3 Then
If .Row Mod 2 = 0 Then
If IsDate(.Value) Then
Cells(.Row, "A").Interior.ColorIndex = 6
End If
End If
Else
If IsDate(Cells(.Row, "B")) And IsDate(Cells(.Row, "C")) Then
If Cells(.Row, "B") >= Cells(.Row, "C") Then
Cells(.Row, "A").Interior.ColorIndex = 3
Else
Cells(.Row, "A").Interior.ColorIndex = 1
End If
End If
End If
End With
End Sub
こんな感じでしょうかね。
※ お示しのコードをそのまま生かしたのですが、気になる点がいくつかあります。
① B・C列に関しては偶数行ではなく、すべての行が対象になります。
② B・C列とE・G列の優先順位はないのでしょうか?
上記コードだと最後に変更した列が対象になりますので、
仮にA列が黄色に色付けされていても、B・C列の入力の方が後だと
そちらの条件の色付けとなります。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 正規表現を用いての並び替え 7 2022/04/04 09:27
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
一番好きな「クリスマスソング」は?
街に出ればクリスマスソングを聞かない日はないくらい、 いろんな曲がかかっていますよね。 あなたが一番好きな「クリスマスソング」を教えてください!
-
治せない「クセ」を教えてください
なくて七癖という言葉どおり、人によっていろいろなクセがありますよね。 あなたには治せないクセがありますか?
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【穴埋めお題】恐竜の新説
【大喜利】 考古学者が発表した衝撃の新説「恐竜は、意外にもそのほとんどが〇〇〇」 (〇〇〇に入る部分だけを回答して下さい)
-
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
エクセルマクロPrivate Subを複数にする方法
Excel(エクセル)
-
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
-
4
エクセルVBA シートモジュールにチェンジイベントを複数設定する方法を教えて下さい。 例えば、B列に
Visual Basic(VBA)
-
5
Private Sub Worksheet_Change が複数
Excel(エクセル)
-
6
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
7
Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる
Visual Basic(VBA)
-
8
ExcelのVBAでエラー13が出てしまいます。(泣き)
Excel(エクセル)
-
9
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
10
EXCEL VBA 複数のシートに同じイベントプロシジャを書く場合
Excel(エクセル)
-
11
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
-
12
A1セルに入力したら、入力時間をA2セルに自動挿入
Excel(エクセル)
-
13
Excel VBA あるセルでENTERを押すと特定のセルへ移動したい
Excel(エクセル)
-
14
エクセルでエンターを押すと任意のセルに移動は出来ますか?
その他(コンピューター・テクノロジー)
-
15
worksheet_changeがループする
PowerPoint(パワーポイント)
-
16
マクロ 実行ボタンを押さずに常に実行
Excel(エクセル)
-
17
Worksheet_Changeの内容を標準モジュールから実行するには?
その他(プログラミング・Web制作)
-
18
他のシートの特定のセルが変わると、自動実行されるマクロについて
Excel(エクセル)
-
19
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】看板の文字を埋めてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・【穴埋めお題】恐竜の新説
- ・我がまちの「給食」自慢を聞かせてっ!
- ・冬の健康法を教えて!
- ・一番好きな「クリスマスソング」は?
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
IIF関数の使い方
-
B列の最終行までA列をオート...
-
VBAを使って検索したセルをコピ...
-
Excelで、あるセルの値に応じて...
-
URLのリンク切れをマクロを使っ...
-
vba 2つの条件が一致したら...
-
【Excel VBA】カンマと改行コー...
-
【VBA】2つのシートの値を比較...
-
Cellsのかっこの中はどっちが行...
-
文字列の結合を空白行まで実行
-
VBAのFind関数で結合セルを検索...
-
データグリッドビューの一番最...
-
VBAにて 商品と月別ごとにの...
-
rowsとcolsの意味
-
【VBA】複数行あるカンマ区切り...
-
VBA 何かしら文字が入っていたら
-
Changeイベントでの複数セルの...
-
VBAで、離れた複数の列に対して...
-
【Excel VBA】 B列に特定の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
B列の最終行までA列をオート...
-
Excelで、あるセルの値に応じて...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
URLのリンク切れをマクロを使っ...
-
IIF関数の使い方
-
【Excel VBA】 B列に特定の文字...
-
【VBA】2つのシートの値を比較...
-
データグリッドビューの一番最...
-
Changeイベントでの複数セルの...
-
C# dataGridViewの値だけクリア
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
rowsとcolsの意味
-
VBAで、離れた複数の列に対して...
-
VBAでのリスト不一致抽出について
-
VBA 何かしら文字が入っていたら
-
VBAコンボボックスで選択した値...
-
マクロ 最終列をコピーして最終...
おすすめ情報
Application.EnableEvents = False
Application.EnableEvents = True
をつけるとしたらどの場所がよいのでしょぅか。
もしくは必要ないのでしょぅか。
おしえてくれませんでしょうか