調べたい場合があると思います。例えば、数値以外が入力された場合は、
「数値を入力してください。」などのメッセージを表示させたい場合など。
エクセルで何かデータを入力するプログラムを作成し、複数の人たちに
数値のデータ入力をさせる場合、入力された値のチェックは必要になる
と思います。私は、売上データを管理するソフトをエクセルVBAで作り、
入力された値がアルファベットなどの文字列だった場合は、入力ミスの
メッセージを表示するように作っています。これにより、入力ミスの間違い
のままデータを保存してしまうミスは全くなくなりました。何かデータを
入力させるプログラムを作る場合は、今回紹介しているセルに入力された
データのチェック処理は必須ですね。こういう処理を簡単に組み込めるあたり、
本当にエクセルVBAは便利です。
[記述例] 指定したセルの値が数値かどうか調べるVBA記述
Sub test() '指定したセルを調べる If Cells(1, 1) <> "" Then 'もし数値だったらこちらの処理 If IsNumeric(Cells(1, 1)) = True Then MsgBox "セルの値は、数値です。" '数値ではなかったらこちらの処理 Else 'メッセージ表示 MsgBox "セルの値は、数値ではありません!" End If 'セルに値が何もないときの処理 Else MsgBox "空欄です。" End If End Sub[動作とプログラムの説明]
まず、
If Cells(1, 1) <> "" Thenのところで、調べたいセルを指定し、何か文字か値が入力されていたら、
それを調べる処理を行っています。何も文字が入力されていない状態、
すなわち、空欄ならば、「空欄です。」と表示させています。
指定したセルに何か値か文字が入っていた場合、
「IsNumeric」関数で数値かどうかチェックしています。
IsNumeric関数は、引数が数値だった場合は、「true」(真)を、
引数が数値ではない場合は、「false」(偽)を返します。
なので、返り値をチェックし、「true」だったら「セルの値は、
数値です。」のメッセージを表示させ、それ以外、つまり、
「false」だったら、「セルの値は、数値ではありません!」を
表示するようにしています。また、この記述例では、Cellsで、
チェックするセルを指定していますが、もちろん、セルの指定は、
Rangeの方の記述を使っても構いません。