「VBA if 数字を含む」
「VBA 数字 含んでいたら」
「vba 文字列に数字を含むか 判定」
といった検索キーワードで、時折アクセスがあります。
文字列に数字が含まれているかどうかVBAで判定するには、どのようなコードを書けばいいのかを探していた方による検索です。
数字を含むか判定するサンプルマクロ
アクティブなワークシートのA1:A5セルに何らかのデータを入力しておいて、以下のSubプロシージャを実行してみてください。
Dim i As Long
For i = 1 To 5
If Cells(i, "A").Value Like "*[0-9]*" Then
Cells(i, "B").Value = "数字を含みます!"
End If
Next
End Sub
数字の含まれるセルの隣のB列に、文字列「数字を含みます!」が出力されます。
Like演算子で数字を含むか判定できる
拙著『いちばんやさしいExcel VBAの教本』でも何度も利用しているFor~Next文の中で、
Dim i As Long
For i = 1 To 5
A1:A5セルの値が数字を含むかどうかを判定しています。
If Cells(i, "A").Value Like "*[0-9]*" Then
VBAのLike演算子を使って、
If Cells(i, "A").Value Like "*[0-9]*" Then
A列の値と
If Cells(i, "A").Value Like "*[0-9]*" Then
パターン「 *[0-9]* 」とを
If Cells(i, "A").Value Like "*[0-9]*" Then
比較しています。
判定結果として論理値を出力する場合
数字を含むかどうかの判定結果を文字列で出力するのではなく論理値でイイのならば、If文は不要です。Like演算子を使った式「Cells(i, "A").Value Like "*[0-9]*"」は論理値を返しますから、その結果をB列の値として代入する以下のようなコードでOKです。
Dim i As Long
For i = 1 To 5
Cells(i, "B").Value = _
Cells(i, "A").Value Like "*[0-9]*"
Next
End Sub
論理式「Cells(i, "A").Value Like "*[0-9]*"」が返すのはVBAの論理値TrueまたはFalseですが、セルに入力されればExcelの論理値TRUE・FALSEになります。
最終更新日時:2021-04-27 17:18
Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » 数字を含むかVBAで判定する