• ベストアンサー

各セルの不要データを取り除きたい

お世話になります。 Excel2000を使用しています。 外部データの取り込み(テキストファイルのインポート)を行い、データを取り込んだのですが 元々のテキストファイルのデータ後ろにスペースが入っているものがあるのです。   A       B     C 1東京都_  36歳   男 2神奈川県  25歳_  男 3埼玉県_  20歳   女_ ※_がスペースです。 このスペースを除去したいのですがどのようにすればよいのでしょうか? 当方、VBAも多少ですが知識があるのでマウス操作で不可能であればVBAを使った方法でも構いません。 データの存在する全セルが対象です。スペースが2つ以上入ってる場合もありです。 また、とある1列全体の先頭文字「〒」を除去したいのですが、こちらもお分かりでしたらよろしくお願いします。

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

  • ベストアンサー
noname#4564
noname#4564
回答No.3

> このスペースを除去したいのですがどのようにすればよいのでしょうか? 置換では、文字列途中のスペースも詰められてしまうので、Trimを使いましょう。 ・ Trim → 前後のスペースを詰める ・ LTrim → 前方のスペースを詰める ・ RTrim → 後方のスペースを詰める という動作になります。 > とある1列全体の先頭文字「〒」を除去したいのです 下記のコードでOKです。(ちょっとムダが多いので、適宜改良してご使用ください) Sub Macro1() Dim i As Long Dim j As Long With Application.ActiveSheet For i = 1 To .UsedRange.Rows.Count For j = 1 To .UsedRange.Columns.Count If Len(.Cells(i, j).Value) > 0 Then .Cells(i, j).Value = RTrim$(.Cells(i, j).Value) End If If Left$(.Cells(i, j).Value, 1) = "〒" Then .Cells(i, j).Value = Mid$(.Cells(i, j).Value, 2) End If Next j Next i End With End Sub  

Live2000
質問者

お礼

コードを書いていただきありがとうございます。 目的とする結果が得られました。 しばらくVBAから離れていたせいか、スペースを除去する=Trimという発想が思いつきませんでした。 大変勉強になりました。 どうもありがとうございます。

その他の回答 (3)

  • gura_
  • ベストアンサー率44% (749/1683)
回答No.4

 SUBSTITUTEが使えますが、  1東京都_ がA2セルにあるとして、D2セルに  =SUBSTITUTE(A2," ","") と入力すれば、D2セルは「1東京都」となります。  削除したい文字が「〒」のときは=SUBSTITUTE(A2,"〒","")と入力します。 スペースが二つあっても三つあっても、いっきになくなります。ただし、全角の場合は全角のスペースを半角の場合は半角のスペースを「〒」の箇所に入力してください。  このセルを右、下にコピーすればB2,A3等もE2,D3に処理されます。  出来上がった部分を「コピー」→「形式を選択して貼り付け」 で結果の値だけのデータを好きなところに貼り付けられます。

Live2000
質問者

お礼

このような関数が存在するとは全く知りませんでした。 便利な関数なので今後別の形でも使えそうです。 大変参考になりました。 どうもありがとうございます。

  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.2

VBAを書かなくても置換で出来ます。 「編集」→「置換」 変更前 SPACE 変更後 なし です。 この場合 氏 名 の様に間にあるスペースは注意が必要です。例示のケースであれば「全てを置き換える」をクリックすれば簡単です。

Live2000
質問者

お礼

ご指摘のように、途中にスペースがある場合は注意が必要なのですね。 この点は今後この操作をする上で覚えておいたほうが良いですね。 どうもありがとうございました。

回答No.1

「編集」→「置換」で「検索する文字列」にスペースをいれて、「すべて置換」を押せばOKです。

Live2000
質問者

お礼

マウス操作で手軽にできるのですね。 参考になりました。 どうもありがとうございます。

関連するQ&A