« いいのか? ニトリ | トップページ | カピバラだった…… »

Excelへの入力で、コピー貼り付けでの重複を防ぐ。

この記事は自分用の覚え書きです。

エクセルで入力するときに、重複したデータを入力できないようにする。

「データの入力規則」で「ユーザー設定」の「数式」に
=COUNTIF(重複を防ぐセル範囲,重複を防ぐセル範囲の一番上のセル)=1
の式を入れるやり方では、コピーしてきた値は貼り付けることができてしまう。
コピー貼り付けでも重複を禁止するにはVBAを使う。

■特定のシートについて、A1からA50を重複禁止にする。
シート名の上で右クリックして、「コード表示」を選んで次のVBAを貼り付ける。
既存の値を入力すると、メッセージボックスで知らせて重複できなくする。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count <> 1 Then Exit Sub
If Target.Row > 50 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Application.WorksheetFunction.Countif(Range("A1:A50"),Target.Value) > 1 Then
MsgBox "重複した値です。"
Target.Value = ""
End If
End Sub


■留意点
・単一のセルのコピー貼り付けでの重複は防止できる。
・行をコピーして貼り付け(挿入)ではこの重複禁止は機能しない。
・A1:A3というように連続したセルのコピー貼り付けではこの重複禁止は機能しない。
・セル範囲を変える場合は、Row > 50 の数値とRange("A1:A50")を変える。最大値を同じに。この場合は50。


Excel 2002
Windows XP Pro SP3

|

« いいのか? ニトリ | トップページ | カピバラだった…… »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: Excelへの入力で、コピー貼り付けでの重複を防ぐ。:

« いいのか? ニトリ | トップページ | カピバラだった…… »