Trim、LTrim、RTrim
Trim、LTrim、RTrim関数は文字列の両端、左側、右側から連続する半角スペースと全角スペースを除去します。
関数 | 変換前 | 変換後 |
---|---|---|
Trim | ” □abc□ “ | “abc” |
LTrim | ” □abc□ “ | “abc□ “ |
RTrim | ” □abc□ “ | ” □abc” |
□は全角スペースを意味します。
構文
1 2 3 4 5 6 |
Function Trim(String) Function Trim$(String As String) As String Function LTrim(String) Function LTrim$(String As String) As String Function RTrim(String) Function RTrim$(String As String) As String |
String | スペースを削除する前の文字列を指定します。 |
戻り値 | スペースを除去したあとの文字列を内部処理形式がStringのVariantの値で返します。 |
$ありと$なしの関数がありますが通常は$なしで問題ありません。$ありなしの違いについては「VBA関数の$ドルマークの意味」を参照ください。
ワークシート関数のTRIM関数との違い
ワークシート関数にTRIM関数があります。
半角、全角スペースを両端から削除します。
VBA関数のTrim関数との違いですが、違いはありません。
なお、ワークシート関数にはVBA関数のLTrim、RTrim関数に該当する関数はありません。
文字列の途中にあるスペースを除去するには
Trim、LTrim、RTrim関数は文字列の両端のスペースが対象になるため、文字列内にスペース文字があっても除去しません。
文字列内にある全てのスペースを除去したい場合はReplace関数を使います。
元文字列は” abc 12□3 “です。□は全角スペースです。
半角スペースの除去と全角スペースの除去を分けて処理しています。
1 2 3 4 5 6 7 8 9 10 |
Sub TrimMidTest() Dim s s = " abc 12 3 " Debug.Print "[" & s & "]" '// [ abc 12 3 ] s = Replace(s, " ", "") Debug.Print "[" & s & "]" '// [abc12 3] s = Replace(s, " ", "") Debug.Print "[" & s & "]" '// [abc123] End Sub |
サンプルコード
元文字列” □abc□ “(□は全角スペースです。)に対してTrim、LTrim、RTrimを行うサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub TrimTest() Dim s Dim ret s = " abc " ret = Trim(s) Debug.Print "[" & ret & "]" '// [abc] ret = LTrim(s) Debug.Print "[" & ret & "]" '// [abc ] ret = RTrim(s) Debug.Print "[" & ret & "]" '// [ abc] End Sub |