質問番号: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"を対象列に変更する。