PR

Accessで左右にあるスペースを削除する方法 Trim関数の活用

VBA

Accessで様々なデータを扱う上で不要なスペースが入っており、スペースを削除したいといったことがあります。

特に、固定長のCSVデータは、ブランクのフィールドに対してスペースで穴埋めをするため、Accessへ取り込んだ際に対象データの左右に不要なスペースが入っており、これらを削除したいと思案することがあります。

しかしながら、Accessでは対象文字列の左右にあるスペースを削除するための関数として「Trim関数」が用意されているため、これを用いれば簡単にデータ処理をすることができます。

ということで、今回は、Trim関数について見ていきましょう。

スポンサーリンク

サンプルコードの確認

まずは、「TrimFunction」サブルーチンとして以下のサンプルコードを標準モジュールに追加してください。

Private Sub TrimFunction()

'サンプルデータを格納するための変数宣言
Dim Data As String

'サンプルデータとして「○○○山田○太郎○○○」※○は半角スペースを
'変数Dataに格納する。
Data = "   山田 太郎   "

'スペースの削除の様子がわかりやすいように対象の左右に
'かぎカッコをつける。

'LTrim関数を使った場合
Debug.Print "LTrim関数を使った場合: 「" & LTrim(Data) & "」"

'RTrim関数を使った場合
Debug.Print "RTrim関数を使った場合: 「" & RTrim(Data) & "」"

'Trim関数を使った場合
Debug.Print "Trim関数を使った場合: 「" & Trim(Data) & "」"

End Sub

作成したコードの内容をひとつずつ確認していきましょう。

Trim関数を用いてスペースの削除の様子を確認するために、「○○○山田○太郎○○○ ※○は半角スペース」を変数Dataに格納しました。

そして、Debug.Printを用いると、イミディエイトウィンドウにその時の処理が表示されますので、今回作成したコードのように変数DataをTrim関数で処理した結果を返すようにしました。

ここで、スペースの削除の様子が分かりやすくするため、Trim関数による処理結果の左右にかぎカッコをつけました。

また、お気づきだと思いますが、実はTrim関数には「LTrim関数」、「RTrim関数」そして「Trim関数」の三種類があります。これらの違いは以下のとおりです。

LTrim関数: 対象文字列の左側にあるスペースを削除する。
RTrim関数: 対象文字列の右側にあるスペースを削除する。
Trim関数: 対象文字列の左右にあるスペースを削除する。

サンプルコードでは、これらの処理の違いが分かるようにしました。

これで、一通りの準備ができましたので、TrimFunctionを実行してみましょう。

サンプルコードの実行

TrimFunctionを選択して「▶」アイコンをクリックします。すると、図1に示すように、イミディエイトウィンドウに結果が表示されたと思います。

図1 Trim関数の処理結果

各Trim関数の処理結果は次のとおりです。

LTrim関数を使った場合: 「山田 太郎 」
RTrim関数を使った場合: 「 山田 太郎」
Trim関数を使った場合: 「山田 太郎」

このように不要なスペースを削除することができました。

ここで、一点注意していただきたいこととして、実はサンプルデータの「山田」と「太郎」の間にあるスペースは削除されていないということです。Trim関数は、冒頭で申し上げたとおり対象文字列の左右にあるスペースを削除するため、固定長CSVデータの処理などに強い関数となります。

もし、氏名の間にあるスペースも削除したいといった場合は、別の関数として「Replace関数」が用意されていますので、そちらをご利用ください。

データの在り方で、使う関数も異なってきますが、効率的なデータ処理をしていく上では関数も使い分けられるようになることが重要となりますので、是非この機会にTrim関数の使い方を知っていただければと思います。

まとめ

今回は、対象文字列の左右にある不要スペースを削除する方法として「Trim関数」を紹介しました。

データベースの効率的な運用をしていく上で、データの処理方法を選定していくことも大事な点となりますので、Trim関数を上手く活用していただければと思います。

スポンサーリンク

Kindle Unlimitedにサインアップして無料体験に登録する
Kindle Unlimitedに登録すると、人気のシリーズ、ベストセラー、名作などに好きなだけアクセスして、シームレスなデジタル読書体験を実現できます。

コメント

タイトルとURLをコピーしました