VBA ですが一応列挙された条件は判定しています。
判定したい範囲を選択して CheckNaturalNumber を実行してください。
Sub CheckNaturalNumber() Dim r As Range For Each r In Selection If isNaturalNumber(r) = False Then r.Interior.ColorIndex = 3 Else r.Interior.ColorIndex = xlNone End If Next End Sub Function isNaturalNumber(r As Range) isNaturalNumber = False If IsNumeric(r.Value) = False Then Exit Function If r.Value <= 0 Then Exit Function If (r.Value - CLng(r.Value)) <> 0 Then Exit Function If StrConv(r.Value, vbNarrow) <> CStr(r.Value) Then Exit Function If r.HasFormula = True Then Exit Function If r.PrefixCharacter <> "" Then Exit Function isNaturalNumber = True End Function
標準モジュールにおいて実行です。
http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_vbe.html
ISNUNBER関数がありますので、まず数値かどうかは簡単に判断できます。
http://excel.onushi.com/function/isnumber.htm
後は自然数かどうかですから、正で、int関数との差が0かどうかで判定できます。