【VBA】LTrim, RTrim, Trim
指定した文字列に対して、LTrim は先頭のスペースを、RTrim は末尾のスペースを、Trim は両端のスペースを取り除きます。対象となるのスペースは半角/全角の両方です。さっそく簡単なマクロで試してみましょう。
'VBA スペースを取り除くプロシージャ Sub Delete_Space() Dim mystr As String '左に半角、右に全角スペースのある文字です mystr = " ABCDE " Debug.Print "左の半角スペースを消します" & "[" & LTrim(mystr) & "]" Debug.Print "右の全角スペースを消します" & "[" & RTrim(mystr) & "]" Debug.Print "両端のスペースを消します" & "[" & Trim(mystr) & "]" End Sub 'Delete_Spaceの実行結果: '左の半角スペースを消します[ABCDE ] '右の全角スペースを消します[ ABCDE] '両端のスペースを消します[ABCDE]
ワークシートのセル内のデータに対しても使えます。でもこの 3 種類の関数で消せるのは端っこにあるスペースだけです。文字の間にあるスペースは取り除けません。他の関数と組合わせればできなくもないけど、面倒だからやりません。そうしたいときは Replace 関数を使えばいいだけだしね。ちなみに trim は英語で「刈り取る、切り取る」という意味の単語です。もともとは芝や生け垣なんかを手入れするときに使っていた言葉です。
【VBA討論】Trimでスペースを取り除くべきか?
執筆:ChatGPT
場面:IT部門の休憩室。数人のIT社員が集まってランチタイムを楽しんでいる。
登場人物:
マイク(主張:スペースを取り除くべき)
サラ(主張:スペースを残すべき)
ジョン(主張:スペースは状況による)
エミリー(中立的な立場)
マイク: みんな、VBAのTrim関数って使ってる?スペースを取り除くために最適なんだよ!
サラ: え、それはちょっと違うと思うけど。スペースはデータの一部であり、変更すると意図しない結果が生じることがあるんだよ。
ジョン: サラもマイクも一理あると思うけど、私は状況によると思うな。
エミリー: 私もそう思う。データの具体的な使用方法やコンテキストによって、スペースを取り除くべきか残すべきかは異なる場合があるよね。
マイク: でも、スペースを取り除くことでデータの一貫性や正確性を確保できるんだ。比較や処理の際にもスムーズになるよ。
サラ: それは確かに一理あるけど、ユーザーからの入力データを変更するのは慎重に考えるべきだと思う。スペースが重要な情報を持っている場合もあるんだよ。
ジョン: 私もサラに同意するよ。データの精度や処理のニーズに合わせて判断すべきだと思う。
エミリー: そうだね、両方の意見に一理ある。データの品質や処理効率を考えながら、個別のケースごとに判断するのが良いかもしれないね。
コメント