- ベストアンサー
エクセルでスペースを削除
選択されている複数のセルの中で、スペースのみが入力されているセルがあった場合、そのセルからスペースを削除する。 以上を実行するマクロを教えて下さい。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
これでいかがでしょう? スペースは半角でも全角でもOKです。 Sub test01() Dim c As Range For Each c In Selection If Replace(StrConv(c, vbNarrow), " ", "") = "" Then c.ClearContents Next End Sub
その他の回答 (3)
- boy_boy
- ベストアンサー率55% (56/101)
>「スペースのみが入力されているセルがあった場合」 の処理 見落としてました。m(__)m
お礼
どういたしまして。
- popesyu
- ベストアンサー率36% (1782/4883)
1番さんの回答を実際に試されたのでしょうかね? 突っ込みどころはそんなところではなく(というかFindやReplace関数の基本が分からないならまずはヘルプで確認しましょう)、スペースがもれなく置き換えられてしまうということだと思うのですが。 ということで一セルずつ空白かどうかを検証するなら、他にもやり方は幾らでもありますがサンプルとしては下記のようなコードになります。 繰り返しを行うループ処理はFor~で行い、判別はIFです。 For Each mRange In Range("A1:A5") If mRange = " " Or mRange = " " Then Range(mRange.Address) = "" End If Next
補足
おたくの試したけど、ダメだったよ。
- boy_boy
- ベストアンサー率55% (56/101)
こんにちは。 複数のセルを選択して「編集」⇒「置換」 「検索する文字列」にスペース 「置換後の文字列」になにも入力しないで 「置換」では無く「すべて置換」 の動作を「マクロ記録」してみてはいかがですか。 半角・全角すべての場合はオプションでチェックをはずしてから
お礼
回答ありがとう御座います。 ご指摘の方法ですと、 「スペースのみが入力されているセルがあった場合」 の判別処理がマクロに反映されないと思えます。 また、スペースを削除するセルのアドレスが固定されて しまうように思えます。
お礼
回答ありがとう御座います。 OKでした。