• ベストアンサー

VBA(自然数)

読み取る値が自然数ではないときに、「自然数ではない」とメッセージを出すVBAを教えてください。 IF使うと思うのですが、自然数でないときの条件をどのようにしたらよいかわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

> 自然数でないときだけ表示させることはできないでしょうか? では Dim lValue As Double lValue = Target.Value If Not (Int(lValue) = lValue And lValue > 0) Then MsgBox "自然数じゃないです" End If

hiro526
質問者

お礼

ありがとうございました。 無事できました。

その他の回答 (4)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

どういう文脈で使うのか良くわからないのですが Dim x x = Range("A1").Value If IsNumeric(x) Then If x < 0 Then MsgBox "自然数でない" End If Else MsgBox "自然数でない" End If ぐらいでいいと思います。 自然数に0を含めない場合は If x < 0 Then を If x <= 0 Then に

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.4

No3です。 コード2行目のlValue = Target.Valueは、わたしがテストしたときに使った行でしたので削除してください。失礼しました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> できれば、自然数ではないときの表示の仕方を教えてください。 No1さんのをそのままお借りすると、 Dim lValue as Double If int(lValue)=lValue and lValue > 0 then msgbox "自然数です" else msgbox "自然数じゃないです" end if って感じかな。

hiro526
質問者

補足

自然数でないときだけ表示させることはできないでしょうか?

回答No.1

はじめまして。 ダブル型の変数に評価されるべき値があるとして Dim lValue as Double If int(lValue)=lValue and lValue > 0 then ' 自然数です end if でいいのではないでしょうか。

hiro526
質問者

補足

できれば、自然数ではないときの表示の仕方を教えてください。

関連するQ&A

専門家に質問してみよう