この記事では、ExcelのVBAを使用して、文字列からスペースを削除または判定する方法について解説していきます。
特に、文字列内の不要なスペースを一括で取り除く手法と、スペースが含まれているかどうかを判定して関連する行を操作する方法を取り上げます。
ポイントとしては、`ReplaceSpace`関数と`RemoveSpaces`関数を使用することです。下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしています。
そのため、ご活用の際には適切な名称に変更してご使用ください。
それでは詳しく見ていきましょう!
VBAマクロで文字列内のスペースの一括削除の方法【A列2行目から最終行まで読み込み、セル内の文字列にスペースがあれば削除する方法:Replace】
それではまず、文字列内のスペースを一括で削除する方法について解説していきます。
この処理では、特定の列(ここではA列)の2行目から最終行までを対象に、各セル内のすべての文字列内スペースを削除します。
replace関数でスペースを「何もなし」に置換しています。
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
Sub ReplaceSpace()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim i As Long
For i = 2 To lastRow
ws.Cells(i, 1).Value = Replace(ws.Cells(i, 1).Value, " ", "")
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面でReplaceSpace関数を実行します。
この関数で、A列の2行目から最終行までのセルの内容からスペースを削除できますね。
VBAマクロで文字列にスペースが含まれるか判定し、入っていれば行ごと一括で消す方法【RemoveSpaces】
続いては、文字列にスペースが含まれるかを判定し、その場合は行全体を削除する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下のコードをコピペしましょう。
<time="text"> Sub RemoveSpaces() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Sheet1") Dim firstRow As Long firstRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row Dim i As Long For i = firstRow To 2 Step -1 If InStr(ws.Cells(i, 1).Value, " ") > 0 Then ws.Rows(i).Delete End If Next i End Sub
コードのAlt+F8を押し、マクロ選択画面でRemoveSpaces関数を実行します。
この関数は、A列の最終行から2行目までを逆順で確認し、スペースを含む行が見つかった場合にその行を削除します(前から削除していくと、上に詰められた際に行番号が変わりおかしくなるので、行削除の場合は逆順で対応するのが一般的)
まとめ VBAマクロでスペースの削除(文字列:判定:一括)の方法
この記事では、VBAマクロでスペースの削除(一括:文字列:判定)の方法【ReplaceSpace, RemoveSpaces】について確認しました。
マクロの扱いになれ、さらに快適な生活を送っていきましょう!!(^^)/