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