• ベストアンサー

エクセル2010の条件付き書式

エクセル2010の条件付き書式で、一意の値または重複する値だけ書式を設定でAという列のA5:A10000に重複したものが入った場合に着色するというルールを設定をしています。 しかし、自分でない人が行を使いして入力した場合、自分が開いてみてみると、自分で条件を付けた範囲以外の範囲が新たに設定されています。 行を挿入しかしていないとのことなのですが、このA列のすべての行に設定したものを固定することはできますか? 先日重複したものがあったのに、着色されず、条件を再度見てみたところ、いろいろ追加されてしまっていました。 増えないようにしたいのですが可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

> 行を挿入しかしていないとのことなのですが、 > このA列のすべての行に設定したものを固定することはできますか? お望みは「行挿入された行のA列にも同様の条件付き書式を設定したい」という事ですね。 > A5:A10000に重複したものが入った場合に着色する 現状、「=COUNTIF($A$50:$A$10000,A5)>1」のような指定でしょうか。 この条件式だと「50行目から10000行目に挿入されたら」 一つ前の行と同様の書式が設定されるはずですが、 それが上手くいかない、という事でしょうか。 だとしたら当方の環境では再現できなかったので原因はわかりませんが、 とりあえず考えられる回避策を二つ。 1)条件付き書式の適用範囲を変える  つまり、A列全体に条件付き書式を設定してしまう、という事です。  A列全体を選択し(条件付き書式を一度クリアし)、改めて     条件付き書式「式:=COUNTIF($A:$A,A1)>1 (お好みの書式で)」として再設定  としてやると、行挿入されてもおそらく新規行にも同じ書式が自動設定されます。  ただし、コレだとA1:A4セルにも同じ書式が設定されますので  ココに重複する可能性がある場合は別途の考慮が必要かもしれません。  (タイトル行以前ですから「おそらく」大丈夫と思われますが。) 2)行挿入「させない」設定をしておく  シートに保護をかけてしまうと、行挿入「出来ない」設定にできます。  リボンの校閲タブ→シートの保護で出てくるダイアログで、  「行の挿入」の項目のチェックを外した状態にしてやります。  ただしこの場合、ロックされているセルの編集も全くできなくなるので  事前に「編集させても良いセルのロックを解除する」作業が必要です。  セルの書式設定→保護タブでロックを外してやり、  その後でシートの保護をかけてやりましょう。  これで製作者の意図に反する「行挿入作業」を抑止できます。 もっと効率よい方法があるかもしれませんが、とりあえず二案です。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

マクロを使って対応する以外にないでしょう。 A列の条件付き書式を一旦解消してマクロを使って新たに条件付き書式を設定すというようにします。 例えば重複のデータがA列にある場合にセルの塗りつぶしを赤色にするという条件付き書式を設定するのでしたら次のようにします。 シート見出しで右クリックして「コードの表示」を選択します。 表示の画面の右の窓には次のマクロを入力します。 Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Column = 1 Then Application.ScreenUpdating = False Columns("A:A").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=COUNTIF(A:A,A1)>1" Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 255 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False Target.Select Application.ScreenUpdating = True End If End Sub

関連するQ&A

専門家に質問してみよう