スペースを半角(全角)に揃える

マクロ講座69回 
スペースを半角(全角)に揃える

スペース(空白)を揃える Excel2013 マクロ講座 69回

スペースがバラバラの文字列を揃える

文字列の先頭に半角、全角のスペースがバラバラに追加されている場合、 VBAではLtrim関数を使って空白を半角、全角関係なく削除することができます。
それでも、半角スペースだけ残せとか、全角スペースに統一しろなどと要望がある時は、前回(68回)のコードのままでは無理です。
しかし、ちょっと工夫で柔軟な操作が可能です。
(サンプルファイルは、こちらから マクロ69回サンプルデータ

スペース(空白)を揃える

例では、文字列の先頭に全角のスペースが不揃いで入っています。 先頭の空白はLtrim、末尾の空白はRtrimで取り除くことができますが、 インデントのように見かけ上の表示ではなく、実際に先頭に全角のスペースを1つ追加して揃えたいと言う場合は、次のコードで対処できます。
Sub スペースを揃える()
    Dim セル As Range
    Dim myStr As String
    For Each セル In Selection
      myStr = セル.Value
      セル.Value = " " & LTrim(myStr)
    Next セル
End Sub
    
バラバラだった先頭の空白を全角1つに揃えました。
スペース(空白)を揃えるマクロ1

先頭の空白を削除して末尾に様

こちらは、先頭の空白を削除して末尾に様を追加する場合のコード。
Sub  先頭の空白を削除して様()
    Dim セル As Range
    Dim myStr As String
    For Each セル In Selection
      myStr = セル.Value
      セル.Value = LTrim(myStr) & " 様"
    Next セル
End Sub
処理が早いのと、セルがシンプルなのがいいですね。
スペース(空白)を揃えるマクロ2

文字列の前後の空白を削除して間の空白を半角に

また、文字列の前後のスペースをすべて取り去り、間の空白にある空白を半角に揃える場合には、
スペース(空白)を揃えるマクロ3
Sub 前後の空白を削除して間の空白を半角に()
    Dim セル As Range
    Dim myStr As String
    For Each セル In Selection
      myStr = セル.Value
      セル.Value = Replace(Trim(myStr), " ", " ")
    Next セル
End Sub
応用として、6行目のコードでReplaceの部分を Replace(myStr, "様", "")というような使い方をすると、様だけを削除することもできます。