Trim は「文字列の前後についた“余計な空白”を掃除するクリーナー」
Trim 関数は、
文字列の「前」と「後ろ」についているスペースを取り除くための関数です。
イメージとしては、
「文字列の両端にくっついているホコリ(空白)だけをサッと拭き取る」
そんなクリーナーです。
ここで大事なのは、
- 消すのは「前後の空白」だけ
- 文字列の“真ん中”にある空白はそのまま残す
という点です。
Trim の基本的な動きとシンプルな例
基本構文
書き方はとてもシンプルです。
Trim(文字列)
VB戻り値は、「前後の空白を取り除いた文字列」です。
まずは動きを目で確認してみる
Sub SampleTrimBasic()
Dim s As String
Dim t As String
s = " Excel VBA " ' 前後に半角スペースが2つずつ
t = Trim(s)
MsgBox "[" & s & "]" & vbCrLf & "[" & t & "]"
End Sub
VBメッセージボックスには、例えばこんな感じで表示されます。
[ Excel VBA ][Excel VBA]
前後のスペースだけが消えて、
真ん中のスペース(”Excel VBA” の間)はそのまま残っているのが分かると思います。
「前後だけ」「真ん中は残す」という性質をしっかり掴む
真ん中のスペースは消えない
Sub SampleTrimMiddle()
Dim s As String
Dim t As String
s = "Excel VBA" ' 真ん中にスペースが3つ
t = Trim(s)
MsgBox "[" & s & "]" & vbCrLf & "[" & t & "]"
End Sub
VBこの場合、前後に空白はないので、Trim してもまったく同じ文字列が返ってきます。
Trim はあくまで「前」と「後ろ」だけを見る関数です。
「間のスペースも詰めたい」場合は、Replace など別の手段が必要になります。
Trim が本当に役立つのは「入力チェック」と「比較」のとき
「空かどうか」を判定するときの定番パターン
セルに何か入力されているかどうかを判定するとき、
よくこう書きたくなります。
If Len(Range("A1").Value) = 0 Then
' 空とみなす
End If
VBでも、A1 に「スペースだけ」が入っている場合、
Len は 1 以上になってしまうので、「空ではない」と判定されてしまいます。
人間の感覚としては「スペースだけなら実質空でしょ」と思いますよね。
そこで Trim の出番です。
If Len(Trim(Range("A1").Value)) = 0 Then
' 実質的に空(スペースだけのケースも含めて空とみなす)
End If
VBTrim で前後のスペースを削ってから Len を見ることで、
- 何も入っていない
- スペースだけ入っている
どちらも「空」として扱えるようになります。
ここは実務で本当に頻出するパターンなので、
「空チェックするときは Trim とセット」
くらいに覚えておいていいです。
文字列比較の前に Trim しておく
例えば、A1 に「OK」と入力されているかチェックしたいとします。
If Range("A1").Value = "OK" Then
' OK のときの処理
End If
VBところが、ユーザーが「OK 」とスペース付きで入力していたら、
見た目は OK に見えても、実際は "OK " なので一致しません。
こういうときも Trim を挟みます。
If Trim(Range("A1").Value) = "OK" Then
' 前後のスペースを無視して判定
End If
VBこれで、
- “OK”
- ” OK”
- “OK “
- ” OK “
など、前後にどれだけスペースが付いていても、
全部「OK」として扱えるようになります。
「人間はスペースを気にしないけど、コンピュータは気にする」
そのギャップを埋めるのが Trim です。
LTrim / RTrim との違いも軽く知っておく
左だけ・右だけ消したい場合
Trim は「左右両方の空白」を消しますが、
片側だけを消す兄弟関数もあります。
LTrim(文字列) ' 左側(先頭)の空白だけを削除
RTrim(文字列) ' 右側(末尾)の空白だけを削除
VB例えば、
Sub SampleLTrimRTrim()
Dim s As String
s = " Excel "
MsgBox "[" & LTrim(s) & "]" ' → "[Excel ]"
MsgBox "[" & RTrim(s) & "]" ' → "[ Excel]"
End Sub
VB超初心者の段階では、
「両端まとめて掃除する Trim」だけ覚えておけば十分ですが、
「片側だけ」という選択肢もあるんだ、くらいは知っておくと後で楽です。
Trim を使うときに意識してほしい重要ポイント
「見えないスペース」がバグの原因になる
Excel では、見た目には分かりにくいスペースがよく紛れ込みます。
- コピー&ペーストしたときに余計な空白が付く
- ユーザーが入力時にスペースキーを押してしまう
- 外部システムから取り込んだデータに前後の空白が含まれている
こういうとき、Trim を挟まずに比較や検索をすると、
「同じに見えるのに一致しない」
「なぜかヒットしない」
という、イライラするバグの原因になります。
だからこそ、
- 比較する前
- 空かどうか判定する前
に、一度 Trim を通して“素の姿”にしておくのがとても大事です。
Trim では「全角スペース」は消えないことに注意
標準の Trim は、「半角スペース」を対象にします。
全角スペース(” ”)は、そのまま残ってしまいます。
もし全角スペースも消したいなら、
Replace と組み合わせます。
s = Trim(s) ' 前後の半角スペースを削除
s = Replace(s, " ", "") ' 全角スペースを削除
VBあるいは、前後の全角スペースも消したいなら、
もう少し工夫が必要ですが、
超初心者のうちは「Trim は半角スペースに効く」と覚えておけばOKです。
まとめ:Trim は「文字列を比較可能な状態に整えるための下ごしらえ」
Trim の本質は、
「人間から見た“余計な空白”を取り除いて、
文字列を“素の状態”に整える」
ことです。
押さえておきたいポイントをコンパクトにまとめると、
- Trim(文字列):前後の半角スペースだけを削除する
- 真ん中のスペースはそのまま残る
- 空チェックや文字列比較の前に Trim を挟むと、実務コードが安定する
- 全角スペースには効かないので、必要なら Replace と組み合わせる
