半角英数字では半角スペースが単語を区切るので、ないと困りますが、日本語間の半角スペースは不要である場合があります。
日本語(半角英数字以外)同士に挟まれた半角スペースだけを削除するExcelのマクロを考えてみました。
Like演算子を使っています。
3文字ずつチェックし、「日本語」「半角スペース」「日本語」と並んでいる場合、「半角スペース」を取り除き、「日本語」「日本語」とします。
「Like “[!0-9a-zA-Z]”」とすることで、半角数字と半角英字以外を調べることができます。
Sub 選択範囲の全角文字間のスペースを削除する()
Const an = "[!0-9a-zA-Z]"
Dim c As Object
Dim s, a As String
Dim i As Long
For Each c In Selection
v = c.Value
s = ""
For i = 1 To Len(v)
a = Mid(v, i, 3)
If a Like an & " " & an Then
i = i + 1
End If
s = s + Left(a, 1)
Next i
c.Value = s
Next c
End Sub
Const an = "[!0-9a-zA-Z]"
Dim c As Object
Dim s, a As String
Dim i As Long
For Each c In Selection
v = c.Value
s = ""
For i = 1 To Len(v)
a = Mid(v, i, 3)
If a Like an & " " & an Then
i = i + 1
End If
s = s + Left(a, 1)
Next i
c.Value = s
Next c
End Sub
コメント