質問番号:1431837793

VBAのことで質問です。

一覧表の特定の列に半角スペースまたは全角スペースのみで入力されているものがあればその行をClearContentsをしたいと思っています。
Criteria1に"* *"や"* *"と入力するとスペースが含まれる全てのレコードが抽出されてしまいます。
色々な組み合わせを作ってFor文で繰り返し行うくらいしかないのでしょうか?

192,000行もあるので、なるべくFor文は使いたくありません。

回答

' 回答プログラム(質問番号:1431837793)
' Author Y.Yoshiya
' Date 2015/05/18

Option Explicit

Sub main()

Dim LastRow As Long

Dim lp1 As Long
Dim lp2 As Integer
Dim Flag As Boolean

    If Worksheets.Count = 1 Then
        Worksheets.Add after:=Worksheets(Worksheets.Count)
    End If

    LastRow = Me.Range("A" & Rows.Count).End(xlUp).Row

    For lp1 = 1 To LastRow
        Flag = False
        For lp2 = 1 To Len(Me.Range("A" & lp1))
            If Mid(Me.Range("A" & lp1), lp2, 1) <> " " And Mid(Me.Range("A" & lp1), lp2, 1) <> " " Then
                Me.Range("A" & lp1).EntireRow.Copy
                Worksheets(2).Range("A" & lp1).EntireRow.PasteSpecial (xlPasteAll)
                Flag = True
                Exit For
            End If
        Next lp2
            
        If Flag = False Then
            Worksheets(2).Range("A" & lp1).EntireRow.ClearComments
        End If
    Next lp1

End Sub

サンプルプログラムではA列を対象にしている。 A列以外の列を対象にする場合は、"A"を対象列に変更する。