【VBA入門】Trim関数で文字列前後の空白を削除

Trim関数って使っていますか?Trim関数はある文字列からスペースを削除したいときに使用します。

この記事では、Trim関数について

  • Trim関数の使い方
  • LTrim関数、RTrim関数の使い方
  • 改行、タブ、全角スペースを削除する方法

など基本的な内容から、応用的な内容についても解説していきます。今回はTrim関数について、使い方をわかりやすく解説します!

目次

Trim関数の使い方

Trim関数は、指定された文字列から先頭と末尾両方のスペース(半角)を削除した文字列を返します。

以下のように記述します。

Trim(string)

引数stringにNull値が含まれている場合は、Nullを返します。

サンプルコードで確認しましょう

Sub macro1()
    Dim str As String
    str = " Hello VBA! "
    
    MsgBox str & "(Trim前)" & vbCrLf & _
            Trim(str) & "(Trim後)"
End Sub

実行結果:
Trim01

このサンプルコードでは、Trim関数を使ってString型変数strに格納されている文字列の先頭と末尾のスペースを削除しています。なお、削除されるのは先頭と末尾のスペースで、文字列中のスペースは削除されません。

LTrim関数、RTrim関数の使い方

LTrim関数、RTrim関数はTrim関数と同様に指定された文字列からスペースを削除します。LTrim関数の場合は、先頭のスペースを削除します。RTrim関数の場合は、末尾のスペースを削除します。

LTrim関数は以下のように記述します。

LTrim(string)

RTrim関数は以下のように記述します。

RTrim(string)

サンプルコードで確認しましょう。

Sub macro2()
    Dim str As String
    str = " Hello VBA! "
    
    MsgBox str & "(LTrim前)" & vbCrLf & _
            LTrim(str) & "(LTrim後)" & vbCrLf & _
            RTrim(str) & "(RTrim後)"
End Sub

実行結果:
Trim02

改行、タブ、全角スペースを削除する方法

改行、タブ、全角スペースなども削除したい場合があります。

しかし、これらはTrim関数で削除することはできません。これらを削除する場合はReplace関数を使用します。Replace関数は指定文字を置換文字に変更することができます。

改行、タブ、全角スペースなどを文字数ゼロの空文字に置換することで、削除することができます。

Sub macro3()
    Dim str As String
    str = vbTab & "Hello VBA!" & vbCrLf
    
    MsgBox str & "(Replace前)" & vbCrLf & _
            Replace(str, vbTab, "") & "(タブ削除後)" & vbCrLf & _
            Replace(str, vbCrLf, "") & "(改行削除後)"
End Sub

実行結果:
Trim03

このサンプルコードでは、Replace関数を使ってString型変数strから、タブと改行をそれぞれ削除しています。サンプルコードにはありませんが、全角スペースも同様にして削除できます。

まとめ

ここでは、Trim関数、LTrim関数、RTrim関数の使い方について説明しました。Trim関数が削除できるのは先頭や末尾の半角スペースのみです。タブや改行、全角スペースを削除する場合はReplace関数を使いましょう。

使いこなすことができるように、この記事を何度も参考にして下さいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次