- Trim関数って何?何ができるの?
- VBAでのTrim関数の使い方を知りたい
- Trim関数を使う際の注意点を知っておきたい
このようなお悩みをお持ちですか?
この記事を読むことで、下記のことがわかります。
- Trim関数でできることがわかる
- Trim関数の使い方・書き方を学べる
- Trim関数を扱う際の注意点を知れる
-著者情報-
名前:Utatane
VBA(マクロ)歴:3年
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
VBAのTrim関数とは?(Excelマクロ)
VBA(Excelマクロ)の「Trim」は、文字列の前後に入った「スペース」を削除できる関数です。
※「 abcd 」→「abcd」
【いつ使うの?】
「Replace関数」や「Left関数」を使用した後、どうしても前後にスペースが残ってしまう場合があります。
そんな時に「Trim関数」が活躍します。
※「abcd efg」→Left→「abcd 」→Trim→「abcd」など
使い方も併せて解説した方がわかりやすいかと思いますので、次項をご覧ください。
Trim関数の使い方
まずは簡単な使い方を見ていきましょう。
簡単な使い方
「Utatane」という文字列の前後に入ったスペースを削除してみましょう。
下記のVBAコードを見てください。
Sub トリム()
Debug.Print " Utatane " ' トリムなし
Debug.Print Trim(" Utatane ") ' トリムあり
End Sub
2行目が文字列そのまま、3行目がTrim関数を使った例です。
それぞれ「Debug.Print」で結果を表示させています。
「Debug.Print」の使い方や表示方法は、下記記事をご参考ください。
実行結果は下図のとおりです。

Trim関数ありの場合は、前後のスペースが削除されています。
しかしながら、ここでいくつかの疑問が沸くかと思います。
- 2つ以上の連続したスペースも削除できるの?
- 全角スペースも削除できるの?
- 文字列の途中に入ったスペースは削除できないの?
次項でまとめて解決いたします。
よくある疑問
前項で挙げた疑問をまとめて実行してみましょう。
下記のVBAコードを見てください。
Sub トリム()
Debug.Print " Utatane " ' トリムなし
Debug.Print Trim(" Utatane ") ' 半角スペース
Debug.Print Trim(" Utatane ") ' 半角スペース×2
Debug.Print Trim(" Utatane ") ' 全角スペース
Debug.Print Trim("My name is Utatane") ' 文字間にスペースあり
End Sub
2・3行目は比較用として、前項のまま残しています。
実行結果が下図です。

最後以外は問題なく削除できておりました。
- 2つ以上の連続したスペースも削除できるの? → OK(可能)
- 全角スペースも削除できるの? → OK(可能)
- 文字列の途中に入ったスペースは削除できないの? → NG(不可)
文字間のスペースは「Replace関数」を使って削除しましょう。
では次に、少し高度な使い方を見ていきましょう。
少し高度な使い方(応用例)
まずは変数を経由した削除方法です。
変数を経由する
これまではTrim()の引数に直接文字列を指定しましたが、
変数を引数として指定することも可能です。
【引数とは?】
引数は「引き渡す数(引き渡す値)」のことで、Trim関数に渡す値を指します。
引数として「前後にスペースが入った文字列」を渡すと、「スペースが削除された文字数」を私たちが受け取ります。
この受け取る値を「返り値(戻り値)」といいます。
例えば、魚屋さんにアジの3枚おろしを作ってもらいたい場合は、アジを渡して3枚おろしを受け取ります。
アジが引数、3枚おろしが返り値といったところでしょうか。
変数(name)に値( Utatane )を代入し、その変数(name)をTrimに引き渡してみます。
Sub トリム()
Dim name As String
name = " Utatane "
Debug.Print name
Debug.Print Trim(name)
End Sub

文字列を直接引き渡した場合と同じ結果になりました。
変数については、下記記事をご参考ください。
LTrim・RTrim
Trimと同類の関数に「LTrim」「RTrim」というものがあります。
- Trim:前後のスペースを削除
- LTrim:左側(先頭)のスペースを削除
- RTrim:右側(末尾)のスペースを削除
使い方は「Trim」と同じです。
Sub トリム()
Debug.Print " Utatane " ' トリムなし
Debug.Print Trim(" Utatane ") ' Trim(前後のスペースを削除)
Debug.Print LTrim(" Utatane ") ' LTrim(左側のスペースを削除)
Debug.Print RTrim(" Utatane ") ' RTrim(右側のスペースを削除)
End Sub

実践的な活用例
ここからは、より実践的な活用例を2つ紹介いたします。
セルの文字列に適用
セル内の文字列にTrim関数を適用した例です。

Sub セル内の文字をトリム()
Dim val As String
val = Range("A1").Value
val = Trim(val)
Range("A1").Value = val
End Sub
上記VBAコードにて、下記の処理を行っております。
- A1セルの値を取得し、変数(val)に代入
- Trimで前後のスペースを削除し、変数に再代入
- 変数の値をA1セルに上書き
▼関連記事
複数のセルに適用
前項の処理を複数セルに適用した例です。

Sub 複数のセルをトリム()
Dim rng As Range
For Each rng In Range("A1:A5")
rng.Value = Trim(rng.Value)
Next rng
End Sub
スペース無し(A3)も混ざっていますが、エラーは出ません。
For EachでA1~A5の範囲をループ処理しています。
For Eachについては、下記記事をご参考ください。
Trim関数を使う際の注意点
Trim関数の特徴やできることをおさらいしましょう。
- Trim関数は文字列の前後のスペースを削除できる
- 全角スペースも削除できる
- スペースが入っていない文字列に適用してもエラーは出ない
- 文字列の途中にあるスペースは削除できない
- 削除できるのはスペースのみ
- 「_(アンダーバー)」「,(カンマ)」「.(ドット)」などは削除できない
削除できるのは前後のスペースのみで、「_(アンダーバー)」などは削除されません。
最後に
VBA(Excelマクロ)のTrim関数について解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!