【VBA】半角スペースだけ全角スペースだけ入っているセルを探す

「モフモフの秘書猫」の写真
フリー写真素材ぱくたそ 

Excelのシートにスペースのみ入っているセルを探すコード。

置換する場合は全角スペースは半角スペース×2なので、
同時に消すことはできるが、
半角スペースのみ、全角スペースのみ入っているセルを探す場合、
それぞれで完全一致するセルを探さないと、うまく探せない。
まず半角を探すLoopしてから全角を探すLoopをすれば見つけられる。

最初、普通に「" "」と「"  "」で探したら、
完全一致でも何も探さず、
(Excelの検索では探します)
ASCIIにたどり着くのに一苦労。
そこから全角スペース探すのに一苦労。
そのため覚書です。


Dim xlbook As Workbook
Dim xlsht As WorkSheet
Dim c As Range
Dim f_rng As String

For Each xlsht In xlbook.Sheets

 '半角(どちらかをセット)
   Set c = xlsht.UsedRange.Find(Chr(32), LookIn:=xlValues, LookAt:=xlWhole)

   '全角(どちらかをセット)
   Set c = xlsht.UsedRange.Find(Chr(-32448),LookIn:=xlValues,LookAt:=xlWhole)

If Not c Is Nothing Then

        f_rng = c.Address

            Debug.Print c.Address(False, False)

            Debug.Print c.Parent.name

      Do

        Set c = xlsht.UsedRange.Find(c)

            If c.Address = f_rng Then Exit Do

            If Not c Is Nothing Then

            Debug.Print c.Address(False, False)

            Debug.Print c.Parent.name

            End If

        Loop

 End If

 Next xlsht

Parent.nameでこの場合はシート名を取得できるので、
Debugでなくてシートなどに書き込めば、一覧作成できる。

私はAccessからExcelのセルを探しに行ったので、
実際のコードはCreateObject("Excel.Application")とかもやっています。
状況によって変更してご利用ください。