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

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

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

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

[スポンサードリンク]

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

Excelのアクティブなワークシートの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
   If Cells(i, "A").Value Like "*[0-9]*" Then
A1:A5セルの値が数字を含むかどうかを判定しています。

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-08 14:15

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

「エクセルマクロ・Excel VBAの使い方」の記事一覧

検索


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

.