Excel VBA:文字列中の空白を削除する|Len・Mid関数を使用

Excel VBAで文字列中に含まれる空白を削除する方法です。



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

操作者によって、例えば電話番号や住所などの入力時、空白で区切り入力する場合があります。

その場合、データを一覧表示すると不規則で見難くなるので、このVBAで書式を統一してください。

やり方は、Len関数で文字列の長さ分ループし、Mid関数で一文字づつ空白かどうかチェックします。

Len関数は文字列の長さを取得できる関数です。

Len関数の構文

Len(string)

Mid関数は、文字列の指定した位置から、指定文字数を取り出す関数です。

Mid関数の構文

Mid(string, start[, length])

省略すると、引数startから後ろの全ての文字列が返ります。

Mid関数を解説した「MID、MIDB 文字列の指定した位置から、指定文字数を取り出すExcel関数」を掲載していますので、参考にしてください。




文字列中の空白を削除する

Excel VBA シートコード

作成したExDelSpaceプロシージャの説明

  1. B8セルに入力されている文字列を変数s1に代入します。
  2. Len関数で文字列の長さ分、Forでループします。
  3. Mid関数で文字列の先頭から1文字づつ取り出します。
  4. 取出した文字が半角の空白か全角の文字列どうかチェックします。
  5. 空白でない場合、変数s2に追加します。
  6. ループが終了すると、変数s2は空白のない文字列になっているので。結果をB9セルに入力します。
'文字列中の空白を削除
Private Sub ExDelSpace()
    Dim s0 As String
    Dim s1 As String
    Dim s2 As String
    Dim i As Integer
    
    '元の文字列
    s1 = Range("B8")
    s2 = ""
    
    For i = 1 To Len(s1)
        '1文字づつチェック
        s0 = Mid(s1, i, 1)
        
        If Not (s0 = " " Or s0 = " ") Then
            '空白でない場合
            s2 = s2 & s0
        End If
    Next
    '結果をセルに表示
    Range("B9") = s2
End Sub

'コマンドボタン クリック イベント
Private Sub CommandButton1_Click()
    ExDelSpace
End Sub



Excel VBAの実行結果

「B8」の文字から空白を削除した結果が、「B9」に表示されています。

実行前の「ABC def あいう えお」から空白を削除し「ABCdefあいうえお」になっています。

Excel VBAの実行結果


Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved