文字列を成型する(連続した空白を1つにする)

今回も、セルに入力した文字を成型するマクロを紹介します。

エクセルシートに入力されたデータをマクロで読み取り、データベースやテキストファイルなどに記録することを想定しています。

連続した空白を1つにする

例えば、セルに名前を入力する際に、「姓と名の間は一文字空けて入力してください。」なんて注意書きがある場合ありませんか。

本来は、「中村 一郎」と入力してもらいたいんですが。

「中村  一郎」と入力されていたり。

注意書きに一文字空けてと、記述があるので入力エラーでも良いんですが。

簡単なマクロで成型できるのでやってみましょう。

連続した空白を1つに変換するマクロ

引数に指定した文字列中の複数の連続した空白を1つの空白に変換する関数です。

Function uSpaceShorten(ByVal sVal As Variant) As Variant
    
    Dim wVal As Variant
    
    wVal = Trim(sVal)
    
    ' 連続した空白を1つに(2つの空白を1つに変換)
    Do While InStr(wVal, "  ") > 0
        wVal = Replace(wVal, "  ", " ")
    Loop
    
    uSpaceShorten = wVal
    
End Function

いかがでしたか

エクセルシートに入力する方、チェックする方の手間が少し楽になりますよね。

ではまた。

コメントの受付は終了しました。