Excel VBA:文字列中の空白を削除する|Len・Mid関数を使用
Excel VBAで文字列中に含まれる空白を削除する方法です。
Homeに戻る >
Excel 数値・文字列・検索・印刷のTipsへ
操作者によって、例えば電話番号や住所などの入力時、空白で区切り入力する場合があります。
その場合、データを一覧表示すると不規則で見難くなるので、このVBAで書式を統一してください。
やり方は、Len関数で文字列の長さ分ループし、Mid関数で一文字づつ空白かどうかチェックします。
Len関数は文字列の長さを取得できる関数です。
Len関数の構文
Len(string)
Mid関数は、文字列の指定した位置から、指定文字数を取り出す関数です。
Mid関数の構文
Mid(string, start[, length])
- string:対象となる文字列
- start:抜き出す文字の位置を指定
- length:(省略可能)抜き出す文字の長さを指定
省略すると、引数startから後ろの全ての文字列が返ります。
Mid関数を解説した「MID、MIDB 文字列の指定した位置から、指定文字数を取り出すExcel関数」を掲載していますので、参考にしてください。
文字列中の空白を削除する
Excel VBA シートコード
作成したExDelSpaceプロシージャの説明
- B8セルに入力されている文字列を変数s1に代入します。
- Len関数で文字列の長さ分、Forでループします。
- Mid関数で文字列の先頭から1文字づつ取り出します。
- 取出した文字が半角の空白か全角の文字列どうかチェックします。
- 空白でない場合、変数s2に追加します。
- ループが終了すると、変数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あいうえお」になっています。
Homeに戻る >
Excel 数値・文字列・検索・印刷のTipsへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved