『イベントによる色付け』(kok) kokoの名前でお世話になっていましたが、複数名いらっしゃるようなので kokに変更します。宜しくお願いします。 こちらは動きます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("L3:O500")) Is Nothing Then Exit Sub Range("C3:E500").Interior.ColorIndex = xlNone With Target Range("C" & .Row & ":O" & .Row).Interior.ColorIndex = 7 End With End Sub こちらは動きません Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Intersect(Target, Range("L3:O500")) Is Nothing Then Exit Sub Range("C3:F500").Interior.ColorIndex = xlNone   ’違いは↑の F500 の部分だけです。 With Target Range("C" & .Row & ":O" & .Row).Interior.ColorIndex = 7 End With End Sub セルがEからFに変わっただけで動かなくなります。 理由がわかりません。ご教示お願いいたします。 ---- 今、このままのコードを貼り付けたけど、どちらもサクサク動く。 動かなくなった時点で、VBE画面で、表示-->イミディエイト ウィンドウ で イミディエイト ウィンドウ を表示して そこに ?Application.EnableEvents と入力してエンターキーをおすと、次の行に True か False がでるんだけど どちらがでる? (ぶらっと) ---- ぶらっとさんへ スレが遅くなって申し訳ありません。 ?Application.EnableEvents の結果は True です こちらは職場でも自宅でも片方のコードは動かないのですが、 ぶらっとさんの環境では動くとのことで、不思議で思考錯誤してみました。 結果として理由はわからないのですが、 標準モジュールに下記のコードがあり、 当該シートのG列に条件付書式で「=数式(G3)」を使っています。 このコードをコメント化にしたら質問の動かなかった方の コードも動くようになりました。 Function 数式(target As Range) As Boolean  数式 = target.HasFormula End Function (kok) ---- 通常の背景色の設定より、条件付き書式の方が優先されるので、 「動かない」のではなくて、条件付き書式が機能していたためだと思います。 マクロは動く(結果が見える)ようになったと思いますけれど、条件付き書式 は消してしまってよかったのですか? まぁ、数式があるセルをわかるようにしていたようですから、数式を表示 等で代替できるような気もしますが。 (Mook) ---- Mookさんへ ありがとうございます。 >条件付き書式の方が優先されるので、 >「動かない」のではなくて、条件付き書式が機能していたためだと思います 「=数式(G3)」の条件付書式はG3〜G500にのみ設定しています。 イベントマクロの Range("C3:E500").Interior.ColorIndex = xlNone          ↓ Range("C3:F500").Interior.ColorIndex = xlNone に変えることによって Range("C" & .Row & ":O" & .Row).Interior.ColorIndex = 7 が動かない(結果が見えない)ということは G列の条件付書式が他の列にまで影響を与えるということでしょうか? >条件付き書式 は消してしまってよかったのですか? G列には =IF(ISNUMBER(FIND("職員",N3)),0,IF(AND(P3="原町",K3="有り"),0,IF(OR(P3="村",K3="無"),"1,300",IF(OR(D3="",L3=3,J3=1),0,1000)))) の式がはいっているのですが、時々式を消して手作業で入力する必要があります。 なので、式による結果でないことがわかるように「=数式(G3)」を 条件付書式にしていました。 元の条件付書式の変わりに =IF(ISNUMBER(FIND("職員",N3)),0,IF(AND(P3="原町",K3="有り"),0,IF(OR(P3="村",K3="無"),"1,300",IF(OR(D3="",L3=3,J3=1),0,1000))))<>G3 としましたら、最初に質問させていただいたコードはうまくいっています。 (kok) ---- 理由はわからないけどこちらで試した現象の報告のみ。エクセルは2010。 ・まず、標準モジュールにアップされたファンクションプロシジャを記述。 ・G3〜G500にアップされた長い数式を埋め込み。  (シートはからっぽなのでセルの値としては 0 ) ・G3〜G500にアップされた数式 =数式(G3)による条件付き書式を設定。(色は黄色にした) ・シートモジュールの Worksheet_SelectionChange は、Range("C3:F500").Interior.ColorIndex = xlNone バージョン。   この状態で、最初はサクサク。 選んだ行のC:Oがピンク。でもG列は条件付き書式が優先されるので黄色。 別の行を選ぶと、他の行のC:Fの色は消えて、新しく選らんだ行のみ C:OがピンクでGが黄色。 ここまでは、美しかったんだけど・・・ 適当なG列のセルをクリア。 で、クリアしたセルの上の行を選択して下にフィルコピーで条件付き書式を復活。 こうした瞬間から、まずG列の黄色が、それまではセルいっぱいに黄色だったものが、左側に少し空白の隙間。 かつ、行を選ぶと、今度は G列までピンクに塗りつぶされる。 この間、VBE画面を見て確かめたりしていると・・・・ タイミングは、わからないんだけど、G列の黄色のセルが、あるセルより上が色なしになった。 (あるセルが空白にしたセルだったかどうかは定かではない) この状況で、セルの背景色をすべて色なしにすると、元のきれいな状態になり、セルを選択すると 選んだセルの行のC:Oがピンク(Gは黄色)、それ以外の行のC:Fは無色。 わけがわからないんだけど、とにかく、なんだかおかしな振る舞いをしているね。 (ぶらっと) ---- ぶらっとさんへ 検証していただき有難うございます。 >わけがわからないんだけど、とにかく、なんだかおかしな振る舞いをしているね。 はい。こちらはXP エクセル2007です。 本来のファイルでは、イベントが反応がない状態でしたが 新しいエクセルで確認してみると、ぶらっとさんのおっしゃってる状況と 同じような現象がおきました。 簡単に「バグ」という言葉を使うと怒られそうですが、バグ?  (kok) ---- >簡単に「バグ」という言葉を使うと怒られそうですが、バグ? 我々、一般人からいわせると【バグ】だろうね。 (ぶらっと) ---- バクという認識で解決とさせていただきます。 有難うございました。  (kok)