「TRIM関数」では文字列の前後のスペースしか除去できませんので、例えば氏名間のスペースを除去するようなケースではこのような処理を行ないます。
(画像をクリックすると、このサンプルがダウンロードできます)
「元の氏名」に氏名を入力して、ボタンをクリックすると、「空白除去後」にスペースが除去された文字列が表示されます。空白は全角/半角どちらでも除去されます。
コードの説明です。
'***************************************************************************************************
' 空白文字除去 modOmitSpace(Module)
'
' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev 変更履歴内容------------------------------------------------------------------------>
'03/07/25(1.00)新規作成
'07/07/15(1.01)初回修正
'20/02/29(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'***************************************************************************************************
' ■■■ 公開サブ処理 ■■■
'***************************************************************************************************
'* 処理名 :FP_OmitSpace
'* 機能 :文字列中空白文字と誤変換文字を除去する
'---------------------------------------------------------------------------------------------------
'* 返り値 :除去後文字列(String)
'* 引数 :Arg1 = 除去前文字列(String)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年07月25日
'* 作成者 :井上 治
'* 更新日 :2020年02月29日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Public Function FP_OmitSpace(ByVal strInText As String) As String
'-----------------------------------------------------------------------------------------------
Dim lngPos As Long ' 文字位置
Dim strText As String ' Trim後文字列
Dim strChar As String * 1 ' 1文字WORK
FP_OmitSpace = ""
strText = Trim(strInText)
lngPos = 1
' 先頭文字から最終文字まで探索
Do While lngPos <= Len(strText)
' 1文字を取り出す
strChar = Mid(strText, lngPos, 1)
' 有効文字か
If ((strChar <> " ") And (strChar <> " ") And (Asc(strChar) <> 63)) Then
FP_OmitSpace = FP_OmitSpace & strChar
End If
' 次の文字へ
lngPos = lngPos + 1
Loop
End Function
'***************************************************************************************************
'* 処理名 :FP_CheckString
'* 機能 :文字列中に「,」「"」「'」「Cr」「Lf」がないことを確認する
'---------------------------------------------------------------------------------------------------
'* 返り値 :チェック結果(Boolean)
'* 引数 :Arg1 = 検査文字列(String)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2003年07月25日
'* 作成者 :井上 治
'* 更新日 :2020年02月29日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Public Function FP_CheckString(strInText As String) As Boolean
'-----------------------------------------------------------------------------------------------
Dim lngPos As Long ' 文字位置
Dim strText As String ' Trim後文字列
Dim strChar As String * 1 ' 1文字WORK
FP_CheckString = False
strText = Trim(strInText)
' ブランクなら正常終了
If strText = "" Then
FP_CheckString = True
Exit Function
End If
' 先頭文字から最終文字まで探索
For lngPos = 1 To Len(strText)
' 1文字を取り出す
strChar = Mid(strText, lngPos, 1)
' 不正文字か
If ((strChar = ",") Or _
(strChar = """") Or _
(strChar = "'") Or _
(strChar = ",") Or _
(strChar = Chr(&H818D)) Or _
(strChar = "’") Or _
(strChar = Chr(&H8167)) Or _
(strChar = Chr(&H8168)) Or _
(strChar = vbCr) Or _
(strChar = vbLf)) Then
Exit Function
End If
Next lngPos
FP_CheckString = True
End Function
'----------------------------------------<< End of Source >>----------------------------------------