excel vba セル内に同じ文字が重複していればクリア 消去

excelのvbaについてですが、

for文で連続する行の一つの列内のセルを

順番にみていって、


そのセル内の文字に同じ文字が重複していたら

そのセルの文字を消去する、


というようなコードスニペットを

示していただけないでしょうか?



もちろんです!

以下は、指定された条件を満たすための

Excel VBAコードスニペットです。


このコードは、指定された列の各セルを順番にチェックし、

重複している文字がある場合、そのセルの内容を削除します。


```vba


Sub RemoveDuplicateCharacters()


    Dim ws As Worksheet

    Dim targetColumn As Range

    Dim cell As Range

    Dim charCount As Object

    Dim c As String

    Dim i As Integer

    Dim duplicateFound As Boolean


    ' 対象とするシートと列を指定します

    Set ws = ThisWorkbook.Sheets("Sheet1")

    Set targetColumn = ws.Range("A1:A10") ' 対象の範囲を指定します


    ' 各セルをチェックします

    For Each cell In targetColumn

        If Not IsEmpty(cell.Value) Then

            Set charCount = CreateObject("Scripting.Dictionary")

            duplicateFound = False


            ' セル内の各文字をチェックします

            For i = 1 To Len(cell.Value)

                c = Mid(cell.Value, i, 1)

                If charCount.exists(c) Then

                    duplicateFound = True

                    Exit For

                Else

                    charCount(c) = 1

                End If

            Next i


            ' 重複が見つかった場合、セルの内容を削除します

            If duplicateFound Then

                cell.Value = ""

            End If

        End If

    Next cell

End Sub


```


このコードでは、

対象のワークシート("Sheet1")と

対象の列("A1:A10")を設定しています。


コードを実行すると、指定された範囲内の各セルをチェックし、

重複する文字が見つかった場合、

そのセルの内容を削除します。



必要に応じて、対象範囲やシート名を変更してください。

何か他に質問があればお知らせください!


コメント