• ベストアンサー

エクセルでスペースを削除

選択されている複数のセルの中で、スペースのみが入力されているセルがあった場合、そのセルからスペースを削除する。 以上を実行するマクロを教えて下さい。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

これでいかがでしょう? スペースは半角でも全角でもOKです。 Sub test01() Dim c As Range For Each c In Selection If Replace(StrConv(c, vbNarrow), " ", "") = "" Then c.ClearContents Next End Sub

sjppp
質問者

お礼

回答ありがとう御座います。 OKでした。

その他の回答 (3)

  • boy_boy
  • ベストアンサー率55% (56/101)
回答No.4

>「スペースのみが入力されているセルがあった場合」 の処理 見落としてました。m(__)m

sjppp
質問者

お礼

どういたしまして。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.3

1番さんの回答を実際に試されたのでしょうかね? 突っ込みどころはそんなところではなく(というかFindやReplace関数の基本が分からないならまずはヘルプで確認しましょう)、スペースがもれなく置き換えられてしまうということだと思うのですが。 ということで一セルずつ空白かどうかを検証するなら、他にもやり方は幾らでもありますがサンプルとしては下記のようなコードになります。 繰り返しを行うループ処理はFor~で行い、判別はIFです。 For Each mRange In Range("A1:A5") If mRange = " " Or mRange = " " Then Range(mRange.Address) = "" End If Next

sjppp
質問者

補足

おたくの試したけど、ダメだったよ。

  • boy_boy
  • ベストアンサー率55% (56/101)
回答No.1

こんにちは。 複数のセルを選択して「編集」⇒「置換」 「検索する文字列」にスペース 「置換後の文字列」になにも入力しないで 「置換」では無く「すべて置換」 の動作を「マクロ記録」してみてはいかがですか。 半角・全角すべての場合はオプションでチェックをはずしてから

sjppp
質問者

お礼

回答ありがとう御座います。 ご指摘の方法ですと、 「スペースのみが入力されているセルがあった場合」 の判別処理がマクロに反映されないと思えます。 また、スペースを削除するセルのアドレスが固定されて しまうように思えます。

関連するQ&A