![Excel の行内の重複文字を削除する](https://rvso.com/image/1638107/Excel%20%E3%81%AE%E8%A1%8C%E5%86%85%E3%81%AE%E9%87%8D%E8%A4%87%E6%96%87%E5%AD%97%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B.png)
各行に「x」(引用符なし)を 1 回だけ入力できるようにしたいと考えています。データ検証を使用したいのですが、それが不可能な場合は VBA を使用することもできます。データ検証などで COUNTIF を使用していくつかのことを試しましたが、行ではなく列から重複を削除する方法しかわかりません。
何ができるかについて何かアイデアはありますか?
答え1
次のワークシート イベント マクロを試してください。(それは使用していますCOUNTIF()
):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wf As WorksheetFunction, v As Variant
Dim rng As Range, x As String
Set wf = Application.WorksheetFunction
v = Target.Value
Set rng = Target.EntireRow
x = "x"
If v <> x Then Exit Sub
If wf.CountIf(rng, x) > 1 Then
Application.EnableEvents = False
MsgBox "Too many x"
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
ワークシートコードなので、非常に簡単にインストール自動的に使用できます:
- Excelウィンドウの下部にあるタブ名を右クリックします
- 「コードの表示」を選択すると、VBEウィンドウが表示されます。
- 内容を貼り付けてVBEウィンドウを閉じます
不安な点があれば、まずはトライアルシートで試してみてください。
ワークブックを保存すると、マクロも一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。
に取り除くマクロ:
- 上記のようにVBEウィンドウを表示します
- コードを消去する
- VBEウィンドウを閉じる
マクロ全般の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/excel/getstarted.htm
そして
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
イベント マクロ (ワークシート コード) の詳細については、以下を参照してください。
http://www.mvps.org/dmcritchie/excel/event.htm
これを機能させるにはマクロを有効にする必要があります。
答え2
Gary の回答を詳しく説明します。データ検証だけでこれを行う方法はなく、説明どおりに動作させるにはマクロを有効にした VBA が必要です。
VBA を避けたい場合は、まず各セルを「x」または「」のドロップダウン リストに制限します。次に、条件付き書式を使用して、counta が 1 を超える場合に警告を表示します。ユーザーは、警告が消えるまで追加の x を手動で削除する必要があります。