• ベストアンサー

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

  • 自然数

    ワークの問題で答えは書いてあったのですが途中式みたいのが無くて分かりませんでした √24nの値が自然数となるようなnのうち.もっとも小さい自然数nの値を求めてください とあるのですが.分かる方いらっしゃったら教えていただけませんか?

  • 自然数の問題

    宜しくお願いします 2けたの自然数aと3けたの自然数bについて、a:b=3:4であり、 √a+bの値が自然数となるとき、a、bの値を求めなさい。 という問題の答えは、a=84、b=112です。 √a+bの値が自然数となるので、11×11=121  12×12=144 ・・・で、 3:4になる数 かつ 7の倍数になる数を見つける方法しか 思いあたりませんでした。 どのように求めたらよいのでしょうか? 宜しくお願いします

  • 自然数の和のプログラム

    if-else文とwhile文とfor文と1次元配列、このすべての条件を使って自然数の和を求めるプログラムを作りたいんですけど、これらの条件全てを使ってプログラムを作ることができません。 よろしければ教えてください。

  • このような自然数は存在するのでしょうか?

    いま、n桁の自然数、Nがここにあるとします。そのNを一の位から順番を逆に並べなおした数をMとします。このとき、MがNの約数となるような自然数は存在するのでしょうか?(例えば、N=5431ならば、M=1345です。)無限に自然数はあるので、ひとつくらいはありそうな気もしますが、どうなのでしょうか? ただし、2000、1234321、1210000、22222のような明らかに条件を満たす数は除きます。

  • Excelで「10桁の自然数×10桁の自然数」を計算する方法

    Excelで「10桁の自然数×10桁の自然数」を関数を組み合わせるか、VBAで組むかして、計算する方法をお分かりになる方おられませんでしょうか?(計算結果は文字列として得られることになると思いますが、それでかまいません。) こうすればできる、というアイデアだけでもかまいませんので、よろしくお願いいたします。

  • 2桁の自然数はいくつあるか

    ■6で割ると5余り、8で割ると7余るような2桁の自然数はいくつあるか。■という問題について悩んでいます。 解説によると、 6で割ると5余る数は6a+5、8で割ると7余る数は8b+7で表される(a,bは自然数)。 この2つの条件を満たす2桁の自然数Nは、 N=6a+5=8b+7≦99…(1) (1)の辺々に1を加えると、 N+1=6a+6=8b+8 =6(a+1)=8(b+a)≦100 よって、N+1は、6と8の最小公倍数24の倍数である。 100以下の自然数で、24の倍数であるのは、24、48、72、96であるから、Nは23、47、71、95の4個である。 とのことなのですが、何故(1)の辺々に1を加えたのかが分かりません。 どなたかご教授お願いします。

  • 自然数をほかの自然数であらわす

    8以上の自然数は、5と3の倍数で表されるそうですが、これを証明するためにはどうしたらよいのでしょう? 5x+3yですべての自然数を表現できればいいのですよね。数学的帰納法を用いればできる気がしますがうまく証明できません。 どなたかやり方がわかる方、ご教授ください。よろしくお願いします。

  • 自然数の和がマイナス12分の1になるのは適正?

    自然数の和をマイナス12分の1にする計算方法には疑念を感じていませんが、ミクロな自然現象の中の何かにその値は当て嵌まっているのでしょうか。 未熟者の質問ですから、教えて下さい。

  • VBAで条件式がうまく作れず困っています

    VBAで条件式を作りたいのですが、うまくできません。超初心者ですので、分かる方教えてください。 ある項目をみて、値が10、15、40のときその行を削除するというものです。その項目にはいろいろな値が入っています。 構造的には、 if(値が10または15または40) then   行削除 end if となるのでしょうが、カッコの中の書き方を教えてください。 よろしくお願いします。

  • a、bを自然数として…

    a、bを自然数として、bを素数とする。 x^3+ax^2-5x+b=0が自然数解αをもつとき、 a、bの値とこの方程式の解をすべて求めよ。 解と係数の関係ですかね? やはり分かりません… 教えてください(><)

専門家に質問してみよう