【Excel VBA】함수로 여러가지 공백을 삭제한다

5352 단어 VBAExcelExcelVBA

기사 개요



비즈니스 측에서 「어째서 스페이스 밖에 없을 것인데.
한때 VBA 초보자였던 무렵, CSV 파일을 읽는데 이렇게 부딪히고 1시간 동안 부서진 것을 기억했기 때문에 1년 수개월 만에 Qiita에 기사를 썼습니다.

환경


  • Excel2016
  • Windows10

  • 단순히 공백을 삭제할 수 있다면



    Trim 함수



    캐릭터 라인의 선두나 말미의 스페이스를 삭제하는 함수. 전각도 반각도 스페이스라면 삭제해 줍니다.
    아래 3가지 중 하나를 사용.
  • Trim : 선두와 말미의 스페이스 삭제
  • LTrim : 선행 공백 삭제
  • RTrim : 후미의 공간 삭제
  • 
    Sub ex_Trim()
    
     Dim s As String
    
       s = Trim(cells(1,1)) 'A1セルの先頭と末尾からスペースを削除
       cells(1,2) = s 'B1セルに書き出し
    
    End Sub
    
    



    Replace 함수



    Replace 함수는 치환을 실시하는 함수.? 또는 " "" " 로 대체하여 공백을 제거합니다.

    Trim 함수라면 문자열의 선두나 말미의 스페이스 밖에 삭제할 수 있으므로, ""hoge hoge 로 하고 싶은 경우는 Replace 함수를 사용합니다.

    반각 스페이스를 지우고 싶은 경우는 이런 느낌.
    
    Sub ex_Replace()
    
     Dim s As String
    
       s = Replace(Cells(1,1)," " ,"") 'A1の半角スペースを""に置換
       Cells(1,2) = s 'B1に書き出し
    
    End Sub
    
    



    원래 hogehoge

    があるか知りたい 뒤에 넣은 문자가

    InStr 함수

    , 앞에 넣은 문자열의 몇 문자 안에 존재하는지를 반환하는 함수.
    여러가지 생략할 수 있지만, 공식적으로는 이런 함수

    반각 혹은 전각의 스페이스가 존재하는지를 조사하고 싶은 경우는 이런 느낌.

    
    Sub ex_InStr()
    
      If InStr(Cells(1, 1), " ") > 0 Or InStr(Cells(1, 1), " ") > 0 Then 'A1の先頭からスペースを探して0よりも大きい(スペースが存在する)場合
          MsgBox "True" 'メッセージボックスに`True`を表示
      Else
          MsgBox "False" 'スペースが存在しない場合、メッセージボックスに`False`を表示
      End If
    
    End Sub
    
    




    공백을 삭제했는데 왜?가 표시되면

    が消えなかったり、?
    외형은

    ノーブレークスペースがいらっしゃる可能性が高いです。
    WordPressに入稿する際に自動で入ってたりするこういうやつ   또는 ですが、正確にはスペースとは異なるので、Trim関数を使ったり、Replace関数で" "를 바꾸려고 해도 삭제할 수 없습니다." " 가 되는 것은, 아무렇지도 않게 하면 ? で表現できない文字コードに変換されているから。(2バイト系文字コードが云々のような話になるので割愛)

    좋은 웹페이지 즐겨찾기