Trim関数・RTrim関数・LTrim関数 余分なスペースを取り除く関数の利用法

vbatrimeyecatch

Trim・RTrim・LTrimは文字列の端にあるスペースを取り除きます。
ちょっとのことですが、取り込みデータにスペースが付いていることでのエラーは発見修正が結構厄介です。

注意が必要です。

 

こんにちは、じゅんぱ店長(@junpa33)です。

 

今回は、文字列操作に関連してスペースを取り除くTrim関数・RTrim関数・LTrim関数の使い方についてです。

 

Trim関数・RTrim関数・LTrim関数は余分なスペースを取り除く

 

このTrim関数・RTrim関数・LTrim関数は、いずれも、

文字列の前後についている半角(全角)スペースを取り除くための関数になります。

  • Trim関数は、文字列の前後についている半角(全角)スペースを取り除きます。
  • RTrim関数は、文字列の右側についている半角(全角)スペースを取り除きます。
  • LTrim関数は、文字列の左側についている半角(全角)スペースを取り除きます。

 

エクセルでデータを操作する場合、

特に、テキストファイルやCSVファイルなど、別のファイルからデータを持って持ってくる時には、

「半角や全角のスペース」がくっ付いていることがあります。

その「付いてきたスペースだけ」を削除するのに利用できる関数になります。

 

実際にTrim関数・RTrim関数・LTrim関数を使って
スペースを取り除いてみる

 

例題として、

 

 

「東京都 新宿区」という住所録があった時に

セルB2にある住所データを、「C列に都道府県」「E列に市区町村」と分割します。

その際、住所データの間にある「全角スペース」をどちらに付けるかで2つのパターンを設定しました。

C列とE列ので住所データについている「スペースを取り除いたデータ」をD列とF列に表示します。

G列には「都道府県」+「市区町村」を再表示します。

 

というものを考えていきます。

 

Trim関数・RTrim関数・LTrim関数の構文

 

Trim(【文字列や文字列型変数】)

LTrim(【文字列や文字列型変数】)

RTrim(【文字列や文字列型変数】)

 

VBAコード作成と実行結果

 

VBAコードの実行結果はこのようになります。

(スペースがどこについているかを分かり易くするためアンダーラインを引いています。)

vbatrim002_1a

 

例題のコード
コード

 

  • 東京都の後ろの全角スペースを除く→→→「RTrim関数」
  • 大阪市の前の全角スペースを除く→→→→「LTrim関数」
  • 神奈川県 横浜市の両側の全角スペースを除く→→→「Trim関数」

を利用します。

「Right関数」「Left関数」は文字列の切り出しに使う関数です。

 


Sub Trim関数使い方()

    '東京都新宿区の加工
    Range("C2") = Left(Range("B2"), 4)
    Range("E2") = Right(Range("B2"), 3)
    
    '右スペースを取り除く
    Range("D2") = RTrim(Range("C2"))
    
    Range("F2") = Range("E2")
    Range("G2") = Range("D2") + Range("F2")
    
    '大阪府大阪市の加工
    Range("C4") = Left(Range("B4"), 3)
    Range("E4") = Right(Range("B4"), 4)
    
    Range("D4") = Range("C4")
    
    '左スペースを取り除く
    Range("F4") = LTrim(Range("E4"))
    
    Range("G4") = Range("D4") + Range("F4")
    
    '神奈川県横浜市の加工
    '両端のスペースを取り除く
    Range("B7") = Trim(Range("B6"))
    
    Range("C7") = Left(Range("B7"), 4)
    Range("E7") = Right(Range("B7"), 4)
    
    Range("D7") = Range("C7")
    
    '左スペースを取り除く
    Range("F7") = LTrim(Range("E7"))
    
    Range("G7") = Range("D7") + Range("F7")

End Sub
MEMO

「Right関数」「Left関数」「Mid関数」についてはこの記事が参考になります。

エクセルVBA Mid関数・Right関数・Left関数で文字列の一部を切り出す

 

スペース削除をあまく見るとこうなる!

 

先ほどの例題の実行結果から、

vbatrim002_1a

 

データについている半角(全角)スペースを処理しないまま、

住所データから「市区町村」部分を切り出して、次のVBAコード進行に移ります。

例えばE列にある市区町村データの中で、「大阪市」があるデータ行を使いたいとします。

半角(全角)スペースを処理しない場合

「大阪市」という検索ワードは「設定された入力用セル」、「ユーザーフォーム」や「InputBox」などからの入力だろうという想定です。
ですので普通は「 大阪市」とは入力しないと思います。

コード

Sub 市区町村検索()

Dim Ser As Long
'Match関数を使って「大阪市」のある行を調べる
    Ser = WorksheetFunction.Match("大阪市", Range("E:E"), 0)
    
    MsgBox Ser & " 行にあります。"

End Sub

実行結果

当然の結論として「一致するものがないのでERROR」が起こります。

「大阪市」と「 大阪市」は全く違うものと判断されたのです。

vbatrim003_1a

 

MEMO

Match関数についてはこちらの記事を参考にできます。

エクセルVBAで使うMatch関数 活用度アップでテッパン関数に!

 

Trim関数・RTrim関数・LTrim関数の
スペースを取り除く利用法のまとめ

 

Trim関数・RTrim関数・LTrim関数は、半角(全角)スペースを取り除く関数だということです。

特に数値型のデータの場合は殆ど気にならないデータのやり取りでも、

テキスト化されたデータである文字列型データになった場合は、状況が一変します。

「スペース」も一文字と扱われますので、視覚的外見上同じデータであっても

検索不能になったりして不都合が多く発生します。

 

数値がテキスト化(文字列型データ)になった時が特に面倒です。

「桁数の多い数値が数値型か、半角スペースの付いた文字列型か」なんて見分けることも大変です。

「9784774114798」は数値型で「 9784774114798」は文字列型 なんて目を凝らしてみても分かり難いです。

出来れば、

他からテキストデータを持って来た時は、

先にスペース削除処理を行っておくことをお勧めします。

特に数値の場合は、コード組み立て作業の都合で、文字列型の扱いになった場合は特に注意をしていただくのが吉となります。

 

エクセルVBAを基礎から学ぶために

 

vbastudyeyecatch002 エクセルVBAを独学で習得する!ために大切な7つのポイントを解説します

今回は、「文字列の端に付いたスペースを取り除く」ための関数を説明しましたが、

関数としては結構地味な機能だと思われていると思います。

 

こういう関数も含めて、エクセルVBAを基礎から学ぶためのガイダンス的記事を書いていますので、参考にしてください。

 

基礎知識習得のためのオンライン学習講座の参考記事

エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。

 

エクセルVBAの独習を始めるためのポイントについて

エクセルVBAの独習で良質な参考書を7冊選ぶ。良書との出会いは大切です

 

「VBA最速理解」の記事一覧を開く

 

今回の記事はここまでです。   最後までご覧いただき有難うございました。

 

<記事内容についての告知>VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。