Home » エクセルマクロ・Excel VBAの使い方 » 条件分岐 » 数字を含むかVBAで判定する

数字を含むかVBAで判定する

動作検証バージョン:64bit Windows 10 Pro + 32bit Excelバージョン2102 ビルド13801.20360 Microsoft Store)

「VBA if 数字を含む」
「VBA 数字 含んでいたら」
「vba 文字列に数字を含むか 判定」
といった検索キーワードで、時折アクセスがあります。

文字列に数字が含まれているかどうかVBAで判定するには、どのようなコードを書けばいいのかを探していた方による検索です。

[スポンサードリンク]

数字を含むか判定するサンプルマクロ

アクティブなワークシートのA1:A5セルに何らかのデータを入力しておいて、以下のSubプロシージャを実行してみてください。

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です。

Sub 数字を含むかを判定して論理値を出力する()
 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で判定する

「条件分岐」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.