- 締切済み
Excel2003でセル内の空白を置換以外の方法で消す方法を教えてください。
Excel2003で、セル内の空白を削除しようとしています。 置換で空白を消そうとすると、置換後のセル内の文字数が911を超えているので、「数式が長すぎます」というメッセージが出て置換ができません。 方法が分からないので、手でひとつひとつセルの中の空白部分を削除しているのですが、まとめて消す方法はありますでしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
No.2です >置換後のセル内の文字数が911を超えているので、 すいません。 見逃していました。無視してください。
- ham_kamo
- ベストアンサー率55% (659/1197)
No.1です。全角空白も削除したいのであれば、以下のようにしてください。 Sub DeleteSpaces() Dim R As Range For Each R In Selection R.Value = Replace(Replace(R.Value, " ", ""), " ", "") Next End Sub なお、No.2の方のやり方は私も最初に試したのですが、1セルに1000文字を越すデータで試すと、質問文と同じ「数式が長すぎます」というエラーが出て動きませんでした。
お礼
お礼が遅くなり申し訳ございません。 おかげさまで空白削除に成功しました。 ありがとうございましたm(__)m
セルの範囲が決まっているのなら セルの範囲だけReplaceすればいいと思います。 Sub TEST() Dim myRng As Range Set myRng = Selection myRng.Replace What:=" ", Replacement:="", Matchbyte:=False End Sub 参考までに Matchbyte:=Falseは、全角・半角の区別はしません。 Matchbyte:=Trueとすると、全角・半角の区別をします。 (Excelヘルプより)
- ham_kamo
- ベストアンサー率55% (659/1197)
本当ですね、セル内の文字数が長すぎると置換できないとは、はじめて知りました。 半角空白を削除するマクロです。Alt+F11でVBAの画面を開き、左側のツリーからブック名を選択し、右クリックから「挿入」>「標準モジュール」を選択して、右の画面に以下のマクロをコピーして貼り付けてください。 Sub 空白を削除() Dim R As Range For Each R In Selection R.Value = Replace(R.Value, " ", "") Next End Sub Alt+F11でExcelの画面に戻って、空白を削除したいセル範囲を選択し、Alt+F8からマクロを実行してみてください。
お礼
ありがとうございます。 データが会社にあるため、明日ためしてみます! ちなみに、全角と半角の両方のスペースを一度に消すにはどうすればよいのかも教えていただけますでしょうか? お手数ですがよろしくお願いいたします。
お礼
了解いたしました。 お礼が遅くなり申し分けございません。 ご回答、ありがとうございましたm(__)m