【VBA】先頭,末尾,両端の空白を削除する|Trim
作成日:2022-11-01
更新日:2025-10-05

半角スペース・全角スペース・タブ・改行を削除する|左か右か両端か
Public Function TrimWhiteSpace( _
ByVal text As String, _
Optional ByVal mode As String = "両" _
) As String
Dim tmp As String
tmp = text
mode = UCase$(mode)
' 改行・タブは一時的に半角スペース化(Trimが認識できるように)
tmp = Replace(tmp, vbCr, " ")
tmp = Replace(tmp, vbLf, " ")
tmp = Replace(tmp, vbTab, " ")
Select Case mode
Case "左" ' 左側削除
tmp = LTrim(tmp)
Do While Left$(tmp, 1) = " "
tmp = Mid$(tmp, 2)
Loop
Case "右" ' 右側削除
tmp = RTrim(tmp)
Do While Right$(tmp, 1) = " "
tmp = Left$(tmp, Len(tmp) - 1)
Loop
Case Else ' 両端削除(デフォルト "両")
tmp = Trim(tmp)
Do While Left$(tmp, 1) = " "
tmp = Mid$(tmp, 2)
Loop
Do While Right$(tmp, 1) = " "
tmp = Left$(tmp, Len(tmp) - 1)
Loop
End Select
TrimWhiteSpace = tmp
End Function
Optional
引数で方向を指定:"左"
,"右"
,"両"
(Left, Right, Both)- デフォルトは両端(
"
)両
" Optional
+UCase$()
で大小文字を気にせずモード指定可能。- 標準の
Trim/LTrim/RTrim
で半角スペースを除去後、
Do While
で全角スペースを除去。 - 正規表現を使わず高速・軽量。
使用例
呼び出し例 | 説明 | 戻り値 |
---|---|---|
TrimSpace(" ABC ") | デフォルト(両端) | "ABC" |
TrimSpace(" ABC ", "左") | 左側のみ | "ABC " |
TrimSpace(" ABC ", "右") | 右側のみ | " ABC" |
Reference
- Microsoft Docs. Trim, LTrim, and RTrim functions (VBA)
https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/trim-ltrim-and-rtrim-functions
| Whitespace|空白文字 |
| Optional Parameter|省略可能引数 |
| Full-width Space|全角スペース |
| Input Normalization|入力正規化 |
| Lightweight Function|軽量関数 |
| Mode Selector|モード選択引数 |
文字列をカットしたい場合
Trim whichever side you like
— the goal is always clarity.
— the goal is always clarity.

同じ処理をPythonでも書いてみよう
2022-11-01
編集後記:
この記事の内容がベストではないかもしれません。
記事一覧
-
[VBA]Cutbefore after 【VBA】文字列から指定文字より前/後ろをカットする|InStrRev/Left$/Mid$ -
[VBA]Control the calculation再計算 【VBA】指定のシートを再計算する|Calculate -
[VBA]画像として貼り付けCopyPicture 【VBA】セル範囲を画像としてコピーする|CopyPicture -
テーブルをソートする 【VBA】Excelテーブルを昇順で並び替える|ソート -
[VBA]Redim とRedim Preserve 【VBA】配列の要素数を決める|ReDim vs ReDim Preserve & Pythonとの違い -
時間計算のDateAdd 【VBA】DateAddで時間の足し算・引き算