これをround関数で四捨五入すれば、23~37までの乱数が作れる。vbaの関数=int(rnd*(y-x+1)+x)これでxからyの間で乱数を作れる。ここで使われるintは「小数点以下を切り捨てる」と言うとちょっとおかしいのかな。「整数部分を取り出す」とか「小数点部分を取り除く」の方が良いのか。rnd*15で0から15未満の数を作り、23を足すと、23から38未満の乱数ができる。これをintで整数部分を取り出してやれば、23~37の乱数が出来上がり。vbaではround関数を使わずにint関数を使っているところが多いけど、なんでなんだろ。vbaのround関数は確かに、ワークシート関数のroundとは挙動が異なる。いうか、普通にこっちでも問題ないのでは?ただ、vba関数のroundをちゃんと使う場面はなかなかないと思うし、正確に使ってる人はあまりいない。vbaのround関数は「銀行型丸め処理」になってるから。roundではなくintを使っているところが多いのかも。四捨五入するかどうかは結果が偶数になるかどうかで判断される。四捨五入の結果が偶数なら切り上げるけど、奇数なら切り捨てて偶数になるようにする。「0.5」→「0」、「3.5」→「4」、「4.5」→「4」といったようにね。ここで、次の数の合計は?「0.5」「1.5」「2.5」「3.5」「4.5」「5.5」「6.5」「7.5」「8.5」「9.5」はい、50です。これを四捨五入してから合計してみましょう。「1」「2」「3」「4」「5」「6」「7」「8」「9」「10」はい、55になります。続いて、銀行型丸め処理による四捨五入をしてから合計してみましょう。「0」「2」「2」「4」「4」「6」「6」「8」「8」「10」はい、50になります。なんか、単純に四捨五入するよりも、元の数を合計した値に近くなる。いうかこの場合同じになる。銀行型の方が、元の数の合計に近くなる傾向にあることがわかる。そんな特性を必要とする人が、Excelのvbaユーザーに、割合としてそれほど多いとは思えないけど。それでも、そんな違いがあるから、みんなintで処理してるのかもしれないね。した場合、結果は「1.2」となる。別に「x.5」である必要があるわけではなく、四捨五入をするための比較検討をする数値が「5」であるかそこがポイント。この結果は「1.1」になる。銀行型だということを覚えておいてそんはないでしょう。してもvbaでワークシート関数のroundを使いたければ、WorksheetFunction.Round(xxx.x,y)とでもしてください。いったMSのサイトで。ついでなのでPHPではランダムな値をどう求めるか。rand(23,37)これで23~37の乱数が出ます。ついでで、FileMakerでのランダム。全レコードからランダムにあるひとつのレコードを選ぶ、といったような場合にはこんな感じ。29アーカイブ2020年2月2018年10月2017年12月2017年2月2015年4月2015年3月2015年2月2014年11月2014年7月2014年6月2014年4月2014年2月カテゴリーAmazonMWSセラーセントラルAndroidC#ExcelvbaFileMakerODBCインスタントWEB公開PHPWarningWindowsWordPressスクリプト今日のメモメタ情報ログイン投稿フィードコメントフィードWordPress.org。