• ベストアンサー

Excellの乱数表の計算を操作するには?

Excellで=randabetweenを使っています。この計算はF9を押すか、何か表の計算をしたら再計算されることを学んだのですが、私が使うには、ちょっと簡単に計算されすぎるので、F9を押したときのみ、か特定のコマを使ったときのみ再計算されるようにしたのですが、どのようにしたらそのようなそうさができるでしょうか? あるいはできないのか、知っている方がいたら教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 #2は名前--登録を使った。Ver.4 マクロ関数を使った方法です。 以下は思っているものとは違うものかもしれませんが、乱数表を作るためのものです。 ※標準モジュールへの取り付け方: Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、以下のコードを貼り付けて、 Alt + Q で、画面を閉じます。 マウスで入力する範囲を選択してから、Alt + F8 で、「RandBetweenMaking 」を実行してみてください。(私が実際に使っているマクロは、もう少し複雑な内容ですが、以下は、それを簡略化しました) よく使うようでしたら、個人用マクロブック(PERSONAL.XLS)に登録して、それを、ユーザー選択で、メニュー上のツールボタンにマクロを登録すると、便利です。 '------------------------------------------- Sub RandBetweenMaking()   'ランダムな数を作る   Dim c As Range   Dim i As Variant   Dim j As Variant   Dim t As Variant      If TypeName(Selection) <> "Range" Then Exit Sub   If Selection.Count = 1 Then     MsgBox "ランダム数値を入れる範囲を設定してください。"     Exit Sub   End If   On Error Resume Next   i = InputBox("初期値を入れてください。", "初期値")   j = InputBox("最終値を入れてください。", "最終値")   On Error GoTo 0   If i = "" Then Exit Sub   If j = "" Then Exit Sub   If Not IsNumeric(i) Then     MsgBox "入力されたものは数字ではありません。", 48     Exit Sub   End If   If i > j Then     t = i: i = j: j = t   End If   Randomize   'making random integer numbers from m to n   Application.ScreenUpdating = False   For Each c In Selection     c.Value = Int(Rnd() * (j - i + 1)) + i   Next c   Application.ScreenUpdating = True End Sub

shallowsou
質問者

お礼

マクロやVBAはこれまでやったことがなかったので、いろいろ大変でしたが、なんとか頂いたプログラムを使うことができるようになりました。ありがとうございます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

#2の補足: 後で気がついたのですが、質問のタイトルは、「乱数表」となっていましたが、もし、そうなら、乱数表を作るマクロを作ったほうがよいです。私自身、常に使っていますので、ご紹介できます。#2では、手間が掛かりすぎるはずです。

shallowsou
質問者

お礼

ありがとうございます。#2の方法は、マクロを使い慣れていない私にとって少し難しい内容だったので、その方法を教えていただけたら嬉しいです。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >わたしは一部の計算だけ手動にして、残りを自動計算にしたいのですが、 RANDBETWEEN 関数というのは、再計算関数といって、計算命令が出ると、どこにあっても、システムの乱数ジェネレータから取得して、再計算してしまいます。ですから、もし、そうされたくないのなら、以下のようにしてみたらよいと思います。計算を手動にする必要はありません。 ------------------------------------------- 挿入--名前--定義 名前(W): RNDB <---任意です。 参照範囲: =EVALUATE("RANDBETWEEN(1,10)") <---1,10 は数字の範囲 OK ------------------------------------------- セルに、 =RNDB とします。数値の変更の場合は、F2 を押して、Enter を押すと変わります。しかし、F9 では変わりません。 なお、最初、VBAかと思ってやったのですが、なぜか、この方法が一番良かったのです。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

ツール―オプション―計算方法―手動 をチェックしておく。

shallowsou
質問者

お礼

ありがとうございました。初めて計算を手動で管理することができました。ただ、わたしは一部の計算だけ手動にして、残りを自動計算にしたいのですが、そのような方法をとることはできるでしょうか? もし知っていたら、またよろしくお願いいたします。

関連するQ&A