セルの中に含まれている値が数値であるかどうかをチェックする方法を確認します。
条件分岐の処理を行うIfと共に使うことが多いです。
書式
IsNumeric(?)
?は引数と呼ばれるものです。
ここにユーザーに文字列や値を入力させても良いですし、
取得したセルを入れても良いです。
引数「?」が数値である場合はTrueを、数値でない場合はFalseを返します。
例1:数値である場合に隣のセルに文字を入力する
1 2 3 4 5 6 7 8 9 |
Sub Test() Dim i as Long Dim A as Variant i = 1 A = Cells(i,1).Value If Isnumeric(A) Then Cells(i,2).Value = "数値" End If End Sub |
1行1列目のセルに入力されている値が数値の場合、その右隣のセルに「数値」と入力します。
例えば1列目にずっと値が入力されている場合は、iに1を加えながら繰り返し処理を行っていくことも可能です。
データを扱う際は、文字列と数値が混ざっていることも多いため、数値であるか判定することができれば処理の幅も増えます。
例2:1列目に入力されている値全てを数値か判定する
1 2 3 4 5 6 7 8 9 10 11 |
Sub Test() Dim i as Long Dim A as Variant For i=1 To 10 A = Cells(i,1).Value If Isnumeric(A) Then Cells(i,2).Value = "数値" End If i=i+1 Next End Sub |
1行目から10行目の1列目のセルに値が入力されているものとして、それら全ての値が数値であるかを判定することができます。
今回は単に右隣のセルに「数値」と書くだけですが、目的によって数値である場合の処理は変わってくるでしょう。
その数値を使って計算を行うことや、特定の文字列があるか検索し、その隣のセルが数値であるか判定し、数値である場合には変数に格納して別の処理に使うなどです。
IsNumeric関数を使うことができれば業務効率化の幅が広がりそうですね。
まとめ
- IsNumeric関数は引数が数値であるかを判定する
- 数値の場合はTrue、数値でない場合はFalseを返す
- Ifによる条件分岐と相性が良い
コメント