[[20151009144836]] 『空白を含むセルが存在するかチェック』(chu) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『空白を含むセルが存在するかチェック』(chu)

空白を含むセルが存在するかチェックしたいです。

 A    B    C    D    E
1ああ
2いい(空白)
3うう
4ええ
5おお

このように、目に見えない空白があるセルを最終行まで調べて探したいのですが、どのように記述すれば良いでしょうか?良ければマクロでお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 探して消すだけなら、

 Trim関数でB列に出力して、A列の値を置き換える

 田中 太郎
 など、空白を挟む文字が要らないなら、置換で置き換える

 空白しかないセルの処置なら、後者でいいんじゃないですかね?
 ただ調べるだけでも検索で「全て検索」すれば出てきますよ。
 必要に応じて検索オプションの「セル内容が完全に同一であるものを検索する」などを
 活用されると良いでしょう。

(稲葉) 2015/10/09(金) 14:59


 >目に見えない空白

 目に見えない空白とは?
 空白は、目に見えませんよねぇ・・・
 逆に目に見える空白って、どんな空白?

 ところで、エクセルで空白というものを扱うときに、おうおうにして、認識の差異がでるのが
 「本当の空白」セルと「空白に見えるけど、式なんかで "" という長さ0の文字列が入った空白」
 これらの、どちらを相手にするのか、あるいは両方相手にするのか。

 そのほか、目に見えないというば、全角や半角のスーペースも目に見えませんし、あるいは
 改行とかタブといった制御文字(含む、ごみ)も目に見えませんね。

 そのあたり、どんなものを、どうしたいのかを明確にされたほうがいいですよ。

 ★で、本題の質問なんですが、どこからこどに空白があるかを調べるのですか?
  「最終行まで」とあります。行というのは1行目から1048576行目までのことですか?
  アップされた例では(空白)というのが B列にあったので気になっています。

  さらに、調べてどうするんですか? メッセージを出すとか色を塗るとか、何かしないと意味ないですよね。

(β) 2015/10/09(金) 15:04


稲葉さん

探したいのですが、消したくはないのです。
探して見つけて、見つかったら作成者が消す。という風にしたいのですが、trim関数でできますでしょうか?
(chu) 2015/10/09(金) 15:04


 あぁ、空白 というのは スペース のことでしたか。

(β) 2015/10/09(金) 15:08


βさん

(空白)と文字で書いたので、一応目に見えないと書きました。すみません。
空欄ではなくスペースの空白です。目に見えないもの全てを探したいです。
最終行というのは文字列を含む最終行までですね。
調べて、見つかればmsgboxを出したいと思っています。
(chu) 2015/10/09(金) 15:09


 B列の空白なのか、
 A列に入ってる空白のことなのか

 A列の空白なら、=LEN(A1)=LEN(TRIM(A1))で比較して、その結果をB列に返すことはできると思いますけど
 とにかく情報が少ないですね。 

 端的な文言知ってるなら、丸投げしないで、自分で書いてみてはいかが??

(稲葉) 2015/10/09(金) 15:11


 誤解があればスルーしてください。

 Sub Test()
    Dim r As Range
    Dim c As Range
    Dim f As Range
    Dim sp As Variant

    With ActiveSheet.UsedRange
        For Each sp In Array(" ", " ")
            Set f = Nothing
            Set c = .Find(What:=sp, LookAt:=xlPart)
            If Not c Is Nothing Then
                Set f = c
                Do
                    If r Is Nothing Then
                        Set r = c
                    Else
                        Set r = Union(r, c)
                    End If
                    Set c = .FindNext(c)
                Loop While c.Address <> f.Address
            End If
        Next

        If r Is Nothing Then
            MsgBox "スペースがあるセルはありません"
        Else
            r.Select
            MsgBox "選択されたセルにスペースがありました。" & _
                "該当のセルは以下の通りです" & vbLf & _
                Join(Split(r.Address(False, False), ","), vbLf)
        End If
    End With

 End Sub

(β) 2015/10/09(金) 15:52


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.