- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel(英文)で最後の文字列のみを削除する方法)
Excel(英文)で最後の文字列のみを削除する方法
このQ&Aのポイント
- Excelで用語集を作成している際に、各用語の最後の文字列(部品番号)を削除したい場合の方法を教えてください。
- A列には日本語(全角)、B列には英語(半角)が入力されており、それぞれの用語には部品番号が付いています。手作業で削除しているが、用語数が多いため一括で削除したいです。
- A列の日本語の場合はマクロを使用して削除できますが、B列の英語の場合はどのようにすればいいのかわかりません。最後のスペースから右を削除する方法や、最後のスペースから左を抽出する方法で検索してみましたが、解決策が見つかりませんでした。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
B列には間違いなく半角で記入してあるとします。 標準モジュールに次のマクロを記入し、実行します sub macro1() dim h as range on error resume next for each h in range("B1:B" & range("B65536").end(xlup).row) h = left(h, instrrev(h, " ") - 1) next end sub #ご利用のエクセルのバージョンが不明のご相談ですが、エクセル97以前を使っているときはこのマクロは使えません。
その他の回答 (1)
- nda23
- ベストアンサー率54% (777/1415)
回答No.2
抽出したい文字列のパターンを 箇条書きにするようにしましょう。 (1)最後の空白から後方の文字 (2)数字で始まる空白でない文字が 終端まで続く よってパターンは以下のようになります。 \s+\d\S*$ (1)\s+ 空白(\s:タブ等を含む)が1個以上(+)連続 (2)\d 数字(\d) 個数を指定しないので1文字 (3)\S*$ 空白でない文字(\S)が0個以上(*)続いて、 文字列の終端($)に至る 尚、後方の非空白だけなら"\S*$"です。 これを除去してTrimすれば同じ結果に なります。 http://msdn.microsoft.com/ja-jp/library/cc392020.aspx
質問者
お礼
ありがとうございました。 なるほど、箇条書きにして整理すればいいのですね。 正規表現の構文、役にたちそうです。
お礼
ありがとうございました。 Excelのバージョンは2007です。 一発でできました。 マクロ、もっと勉強したいです。