HOME > 即効テクニック > Excel VBA > 文字列操作関連のテクニック > 文字列の先頭 / 末尾のスペースを削除する(LTrim / RTrim / Trim関数)

文字列の先頭 / 末尾のスペースを削除する(LTrim / RTrim / Trim関数)|Excel VBA

文字列操作関連のテクニック

文字列の先頭 / 末尾のスペースを削除する(LTrim / RTrim / Trim関数)

(Excel 2000/2002/2003/2007/2010/2013/2016)

LTrim関数は文字列から先頭のスペースを、RTrim関数は末尾のスペースを、それぞれ削除した文字列を返します。先頭と末尾のスペースを両方削除するには、Trim関数を使用します。
いずれの関数も、スペースは半角/全角に関わらずに削除されます。

構文 LTrim(String)  先頭のスペース削除
   RTrim(String)  末尾のスペース削除
   Trim(String)   先頭と末尾のスペース削除
設定項目内容
String 空白を削除したい文字列式を指定 [省略不可]
Sub Sample()
    Dim myStr As String

    myStr = "    スキルアップ・問題解決なら   モーグにおまかせ!  "
    
    '---(1)LTrim
    MsgBox "『" & myStr & "』 の先頭の半角スペースを削除します。" & vbCrLf & _
          "『" & LTrim(myStr) & "』", , "LTrim関数"
    
    '---(2)RTrim
    MsgBox "『" & myStr & "』 の末尾の全角スペースを削除します。" & vbCrLf & _
          "『" & RTrim(myStr) & "』", , "RTrim関数"
    
    '---(3)Trim
    MsgBox "『" & myStr & "』 の両端のスペースを削除します。" & vbCrLf & _
          "『" & Trim(myStr) & "』", , "Trim関数"
End Sub

(1)〜(3)のそれぞれの実行結果の違いを確認してください。

●ポイント●

LTrim関数、RTrim関数、Trim関数では、文字列中の空白を削除することはできません。
文字列中の空白を削除する場合は、Replace関数を使用します。

●補足●

ワークシート関数にもTrim関数がありますが、VBAのTrim関数とは挙動が異なります。
ワークシート関数のTrim関数は先頭と末尾の空白を削除し、さらに文字列中に連続する空白があった場合、空白を1つにして残りを削除します。
Sample1に次のコードを追加すると、動作を確認できます。

MsgBox "『" & myStr & "』 の空白をワークシート関数で削除します。" & vbCrLf & _
      "『" & WorksheetFunction.Trim(myStr) & "』", , "ワークシート関数"