Excel VBAの「LTrim 関数」について解説します。
LTrim関数とは
Excel VBA の LTrim 関数とは、文字列の先頭にあるスペース(空白文字)を取り除いて返す関数です。
※ 文字列の先頭にスペース(空白文字)がないときはそのまま元の文字列が返ります。
LTrim / RTrim / Trim 関数(Visual Basic for Applications リファレンス)
文字列の末尾にあるスペース(空白文字)だけを取り除きたいときは RTrim 関数を使います。
文字列の先頭と末尾の両方にあるスペース(空白文字)を取り除きたいときは Trim 関数を使います。
構文(引数と戻り値)
Excel VBAの関数を使いこなすには、関数の構文を正しく理解しておくことが重要です。
構文
LTrim(string)
引数
引数 | 説明 |
---|---|
string | 【必須】対象の文字列(式)を指定します |
戻り値
戻り値 | 説明 |
---|---|
文字列 | string の先頭にあるスペース(空白文字)を取り除いた文字列が返ります ※ スペースは全角/半角問わず、複数ある場合はすべてを取り除きます |
※ string 先頭にスペース(空白文字)が無い場合はそのまま返します。
解説(使用例)
簡単なサンプルコードを作成して使用例を解説していきます。
LTrim関数 サンプル
元の文字列 string と LTrim関数 で先頭の空白を取り除いた文字列を比較表示します。
Sub LTrim_Sample01()
Dim str As String
'先頭と後に空白がある文字列
str = " kurumico.com "
'元の文字列の表示と
'先頭空白を除いた表示を
'比較しやすいように[]内に表示する
MsgBox "[" & str & "]" & vbCrLf & _
"[" & LTrim(str) & "]"
End Sub
実行結果の MsgBox 画像がこちらです。
・元文字列の指定「str = ” kurumico.com ”」の先頭には、半角スペースと全角スペースがあります。
そして後ろには、全角スペースが入っています。
・LTrim 関数を使って、先頭部分のスペース(空白文字)を取り除きます。
LTrim(str)
・MsgBox の表示で、先頭部分のスペース(空白文字)がすべて取り除かれたのが確認できます。
・後ろ部分の全角スペースは取り除かれていないことも確認できます。
先頭空白を取り除いてセルに書き込むサンプル
次のサンプルコードは、A列の「氏名」データから「姓」の部分をB列に、「名」の部分をC列に書き出します。姓名間には全角または半角のスペースが複数存在している設定です。
Sub LTrim_Sample02()
Dim str As String
Dim s As Long, i As Long
For i = 2 To 10
str = Cells(i, 1)
' 空白位置を取得する
s = InStr(1, str, " ", vbTextCompare)
'「姓」を書き込む
Cells(i, 2) = Mid(str, 1, s - 1)
'「名」は空白を取り除いてから書き込む
Cells(i, 3) = LTrim(Mid(str, s + 1))
Next
End Sub
実行結果のワークシート画像です。
A列の「氏名」データの特徴は次のとおりです。
・「氏(姓)」と「名」の間にスペースがあるが「全角」「半角」が複数混在(G列参照)
・「氏(姓)」の字数が1~3のように不特定
InStr 関数 で先頭から空白の位置を取得した場合、空白が複数あったときには、後ろ側の「名」の部分の先頭に空白が存在していることになります。
そこで LTrim関数 を使って、空白を取り除いてからセルに書き込むようにしています。(12行目)
LTrim(Mid(str, s + 1))
Mid関数 の解説記事で使ったサンプルでは、「氏名」から「名」の部分を抜き出す際に、姓名間のスペースの取得に InStrRev 関数 を使っていました。
おわりに
VBAの関数一覧はこちらです。
VBAサンプルファイルダウンロードページのご案内
このページで使用したサンプルファイルの登録はありません(^^;
ページ内のコードをコピーしてご利用ください。
ダウンロードページへのリンクは下のカードクリックでジャンプできます。
よろしければご利用ください!
Excel VBA「LTrim 関数」で対象文字列から先頭部分のスペース(空白文字)を取り除いて返す方法について解説しました。
二つ目のサンプルのように、セルから取得する文字列や、他の関数やメソッドで取得した文字列の先頭にスペース(空白文字)が入っているケースは多く存在します。スペース(空白文字)が入っていたために不具合が出ることもあります。
そんな場合の空白削除に「LTrim 関数」や「RTrim 関数」「Trim 関数」を状況に応じて使い分けましょう。
以上、この解説が少しでもみなさまのお役に立てたなら幸いです(^^;