• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel(英文)で最後の文字列のみを削除する方法)

Excel(英文)で最後の文字列のみを削除する方法

このQ&Aのポイント
  • Excelで用語集を作成している際に、各用語の最後の文字列(部品番号)を削除したい場合の方法を教えてください。
  • A列には日本語(全角)、B列には英語(半角)が入力されており、それぞれの用語には部品番号が付いています。手作業で削除しているが、用語数が多いため一括で削除したいです。
  • A列の日本語の場合はマクロを使用して削除できますが、B列の英語の場合はどのようにすればいいのかわかりません。最後のスペースから右を削除する方法や、最後のスペースから左を抽出する方法で検索してみましたが、解決策が見つかりませんでした。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

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以前を使っているときはこのマクロは使えません。

madam-kei
質問者

お礼

ありがとうございました。 Excelのバージョンは2007です。 一発でできました。 マクロ、もっと勉強したいです。

その他の回答 (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

madam-kei
質問者

お礼

ありがとうございました。 なるほど、箇条書きにして整理すればいいのですね。 正規表現の構文、役にたちそうです。