Excel の行内の重複文字を削除する

Excel の行内の重複文字を削除する

各行に「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

ワークシートコードなので、非常に簡単にインストール自動的に使用できます:

  1. Excelウィンドウの下部にあるタブ名を右クリックします
  2. 「コードの表示」を選択すると、VBEウィンドウが表示されます。
  3. 内容を貼り付けてVBEウィンドウを閉じます

不安な点があれば、まずはトライアルシートで試してみてください。

ワークブックを保存すると、マクロも一緒に保存されます。2003 以降のバージョンの Excel を使用している場合は、ファイルを .xlsx ではなく .xlsm として保存する必要があります。

取り除くマクロ:

  1. 上記のようにVBEウィンドウを表示します
  2. コードを消去する
  3. 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 を手動で削除する必要があります。

関連情報