スペースを半角(全角)に揃える
マクロ講座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つに揃えました。
先頭の空白を削除して末尾に様
こちらは、先頭の空白を削除して末尾に様を追加する場合のコード。
Sub 先頭の空白を削除して様() Dim セル As Range Dim myStr As String For Each セル In Selection myStr = セル.Value セル.Value = LTrim(myStr) & " 様" Next セル End Sub処理が早いのと、セルがシンプルなのがいいですね。
文字列の前後の空白を削除して間の空白を半角に
また、文字列の前後のスペースをすべて取り去り、間の空白にある空白を半角に揃える場合には、
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, "様", "")というような使い方をすると、様だけを削除することもできます。