【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 FunctionOptional引数で方向を指定:"左","右","両"(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]Killthe progress dialog VBA|保存処理(SaveAs)がフリーズする原因と対策 -

UsedRangeのデータを配列で取得 【VBA】シートにあるデータを配列に格納する(空白含む)|UsedRange -

ユーザーフォームにドラッグ&ドロップ 【VBA】ドラッグアンドドロップできるユーザーフォーム|ListView -

[VBA]ShowMessage Box 【VBA】メッセージボックスをモジュールに集める|OKOnly,OKCancel,YesNo -

ボタンをリボンに設置 【VBA】ボタンをリボンに設定する -

数値に+ 記号を追加 【VBA】正の数値に+記号を追加|Sgn