「文字列の後のスペースだけ削除したいのですが・・・?」
「セル内の文字の後ろの空白だけを削除するにはどうしたらいいのでしょう?」
といったご質問をいただくことがあります。
多くのプログラミング言語には、文字列の後ろのスペースだけを削除する「RTRIM」といった関数が用意されていますが、Excelの場合ワークシート関数には「TRIM」はありますが「RTRIM」がありません。
(また、ExcelのTRIM関数はちょっと微妙な仕様です。)
文字列の後ろのスペースだけ削除する必要があるのなら、VBA(Visual Basic for Applications)でユーザー定義関数を作るといいでしょう。
Function TRIM_R(strOrg As String)
TRIM_R = RTrim(strOrg)
End FunctionVBAのRTrim関数を呼ぶだけのユーザー定義関数です。
▼サンプルファイル(003309.xls 37KByte)ダウンロード
サンプルファイルのA列に半角スペース・全角スペースを含んだ文字列、C列には上記のTRIM_R関数で後のスペースだけを削除した例、比較のためE列にはExcelではじめから用意されているTRIM関数を利用した例を入力してあります。
B・D・F列には「=SUBSTITUTE(SUBSTITUTE(A2," ","□")," ","[]")」といった数式を入力してA・C・E列にどんな入力が行われているのかを、全角スペースを「□」半角スペースを「[]」で表示していますので、ご確認ください。
Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » 文字の後ろの空白を削除したい