VBAで文字列にスペースが含まれているか判断する
VBAで文字列にスペースが含まれているか判断するにはInStr関数を使います。
InStr関数
InStr関数は、文字列内に特定の文字列が含まれているかどうか判定することができます。
特定の文字列が含まれている場合はその文字列が最初に現れる位置のインデックスを返します。
特定の文字列が含まれていない場合は0を返します。
下記のコードはInStr関数を使い、文字列に半角スペース、または全角スペースが含まれているか
判断しています。
1Option Explicit
2
3Function HasSpace(s As String) As Boolean
4'###################################################################################
5'文字列が半角スペースまたは全角スペースを含むかどうか判断する
6'-----------------------------------------------------------------------------------
7'戻り値:空白が含まれる場合True,空白が含まれない場合False
8'###################################################################################
9
10 If InStr(s, " ") > 0 Or InStr(s, " ") > 0 Then
11 HasSpace = True
12 Else
13 HasSpace = False
14 End If
15
16End Function
HasSpaceをテストするコードは以下になります。
半角スペースを含む文字列、全角スペースを含む文字列、スペースを含まない文字列を
それぞれHasSpace Functionに渡してテストを実行しています。
1Sub TestHasSpace()
2
3 Dim s As String
4
5 s = "半角スペース が含まれています" '半角スペースを含む文字列
6 If HasSpace(s) Then
7 MsgBox "空白が含まれています"
8 Else
9 MsgBox "空白は含まれていません"
10 End If
11
12 s = "全角スペース が含まれています" '全角スペースを含む文字列
13 If HasSpace(s) Then
14 MsgBox "空白が含まれています"
15 Else
16 MsgBox "空白は含まれていません"
17 End If
18
19 s = "スペースが含まれていません" 'スペースを含まない文字列
20 If HasSpace(s) Then
21 MsgBox "空白が含まれています"
22 Else
23 MsgBox "空白は含まれていません"
24 End If
25
26End Sub
TestHasSpaceを実行すると最初の文字列には半角スペースが含まれているため「空白が含まれています」と
表示されます。

次の文字列には全角スペースが含まれているため「空白が含まれています」と表示されます。

最後の文字列にはスペースが含まれていないため「空白は含まれていません」と表示されます。
