プロが教えるわが家の防犯対策術!

お世話になります。

Excel2000を使用しています。
外部データの取り込み(テキストファイルのインポート)を行い、データを取り込んだのですが
元々のテキストファイルのデータ後ろにスペースが入っているものがあるのです。

  A       B     C
1東京都_  36歳   男
2神奈川県  25歳_  男
3埼玉県_  20歳   女_

※_がスペースです。

このスペースを除去したいのですがどのようにすればよいのでしょうか?
当方、VBAも多少ですが知識があるのでマウス操作で不可能であればVBAを使った方法でも構いません。
データの存在する全セルが対象です。スペースが2つ以上入ってる場合もありです。

また、とある1列全体の先頭文字「〒」を除去したいのですが、こちらもお分かりでしたらよろしくお願いします。

A 回答 (4件)

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/16 04:34

VBAを書かなくても置換で出来ます。


「編集」→「置換」 変更前 SPACE 変更後 なし
です。
この場合 氏 名 の様に間にあるスペースは注意が必要です。例示のケースであれば「全てを置き換える」をクリックすれば簡単です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/16 04:55

> このスペースを除去したいのですがどのようにすればよいのでしょうか?



置換では、文字列途中のスペースも詰められてしまうので、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
 
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/16 05:23

 SUBSTITUTEが使えますが、


 1東京都_ がA2セルにあるとして、D2セルに
 =SUBSTITUTE(A2," ","") と入力すれば、D2セルは「1東京都」となります。

 削除したい文字が「〒」のときは=SUBSTITUTE(A2,"〒","")と入力します。
スペースが二つあっても三つあっても、いっきになくなります。ただし、全角の場合は全角のスペースを半角の場合は半角のスペースを「〒」の箇所に入力してください。

 このセルを右、下にコピーすればB2,A3等もE2,D3に処理されます。
 出来上がった部分を「コピー」→「形式を選択して貼り付け」 で結果の値だけのデータを好きなところに貼り付けられます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/04/16 05:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!