こんにちは、ユーキです。
今回は、VBAで文字列から空白を取り除く関数(Trim)を紹介します。
空白を取り除く関数
空白を取り除く関数には、文字列の先頭の空白を取り除く関数(LTrim)、文字列の最後の空白を取り除く関数(RTrim)、文字列の前後の空白を取り除く関数(Trim)があります。
それぞれ紹介したいと思います。
文字列の前後の空白を取り除く(Trim関数)
文字列の前後の空白を取り除くには、Trim関数を使用します。
Dim txt As String
txt = Trim(" おはよう ございます。 ")
'わかりやすくするため、前後に|を追加
MsgBox "|" & txt & "|"
上記を実行すると、「|おはよう ございます。|」を表示されます。全角スペース、半角スペースが混在していても除去されます。サンプルコードでも全角スペースと半角スペースを混在させています。文中の空白は削除されません。改行、タブ文字も対象外となります。
文字列の先頭の空白を取り除く(LTrim関数)
取り除く空白が文字列の先頭部分だけでよいのであれば、LTrim関数を使います。
Dim txt As String
txt = LTrim(" おはようございます。 ")
'わかりやすくするため、前後に|を追加
MsgBox "|" & txt & "|"
上記を実行すると、「|おはようございます。 |」と表示されます。先頭の空白は除去されますが、末尾のスペースは除去されず、そのままとなります。
文字列の最後の空白を取り除く(RTrim関数)
末尾の空白を取り除きたい場合は、RTrim関数を使用します。
Dim txt As String
txt = RTrim(" おはようございます。 ")
'わかりやすくするため、前後に|を追加
MsgBox "|" & txt & "|"
上記を実行すると、「| おはようございます。|」と表示されます。
改行、タブ文字を取り除く
改行、タブ文字を取り除く場合には、Replace関数を使用します。
Replace関数の基本的な使い方は以下の記事を参考にしてください。
改行を取り除く
改行コードはvbNewLine、またはChr(13) & Chr(10)(Windowsの場合)を指定します。改行コードは実行環境で異なります。vbNewLineを指定しておくと環境に応じた改行コードが指定されます。Chr(13) & Chr(10)を直接指定しても問題はありませんが、vbNewLineをしておくほうが無難です。
Dim txt As String
txt = "おはようございます。" & vbNewLine & "今日もいい天気ですね!" & Chr(13) & Chr(10) & "さようなら"
’元の文章
MsgBox txt
’改行を取り除いた結果
MsgBox Replace(txt, vbNewLine, "")
MsgBox Replace(txt, Chr(13) & Chr(10), "")
タブ文字を取り除く
タブ文字はvbTab、またはChr(9)を指定します。どちらを指定しても問題はありませんが、意味がわかるvbTabを指定しておくほうが無難です。
Dim txt As String
txt = "おはようございます。" & vbTab & "今日もいい天気ですね!" & Chr(9) & "さようなら"
’元の文章
MsgBox txt
’タブ文字を取り除いた結果
MsgBox Replace(txt, vbTab, "")
MsgBox Replace(txt, Chr(9), "")
まとめ
今回は、空白を取り除く関数(Trim)についての紹介でした。
- 文字列の前後の空白を取り除くときは、Trim関数
- 文字列の先頭の空白を取り除くときは、LTrim関数
- 文字列の最後の空白を取り除くときは、RTrim関数
- 除去される空白は全角スペース、半角スペース
- 改行、タブ文字を取り除くときは、Replace関数を使用する
少しでもお役に立てば、幸いです。