先頭や末尾のスペースだけ削除
マクロ講座68回


先頭の空白だけとか、末尾の空白だけを削除したいと言うケースのスペース削除方法を紹介します。
Excel2013 マクロ講座 68回
先頭や末尾のスペースだけ削除する
空白を削除するというと、ワークシート関数のTrim関数が思い浮かびますが、
Trim関数の場合は先頭と末尾の空白を削除し、さらに文字列中の連続する空白を1つだけにして残りを削除します。
便利な関数ですが、先頭(左)の空白だけ削除したいとか、末尾(右)の空白だけを削除したいという場合には使えません。
そこで、今回は、文字列の先頭や末尾の空白だけ削除するマクロを作ります。
(サンプルファイルは、こちらから マクロ68回サンプルデータ)
先頭(左)の空白だけ削除
VBAには、文字列から先頭のスペースを削除するLTrim関数と、末尾のスペースを削除した文字列を返すRTrim関数があります。
もちろん、先頭と末尾の空白をどちらも削除するには、Trim関数を使用することができます。


LTrim関数、RTrimL関数、Trim関数の引数には文字列を指定します。


B2セルの先頭の空白を削除するコードは、

Sub セルの先頭の空白を削除() Dim myStr As String myStr = Selection.Value Selection.Value = LTrim(myStr) End SubB2セルを選択して実行すると、先頭の空白が削除されます。

任意の複数セル範囲の先頭の空白を削除する
ただし、任意の複数セル範囲の先頭の空白を削除するには、おなじみのFor Each~Nextステートメントで、ひとつずつセルを処理します。
変数には、わかりやすいように日本語でそのままセルと宣言します。慣れている場合は半角英の1文字でcなどで良いでしょう。


コードは次のようになります。

Sub 任意の複数セルの先頭の空白を削除() Dim セル As Range Dim myStr As String For Each セル In Selection myStr = セル.Value セル.Value = LTrim(myStr) Next セル End Sub先頭の空白を削除したいセル範囲を選択してマクロを実行します。

選択範囲の先頭の空白が削除されました。


選択範囲の末尾の空白だけを削除したければ、RTrim関数を使ってください。
Sub 任意の複数セルの末尾の空白を削除() Dim セル As Range Dim myStr As String For Each セル In Selection myStr = セル.Value セル.Value = RTrim(myStr) Next セル End Sub