- ベストアンサー
Excellの乱数表の計算を操作するには?
Excellで=randabetweenを使っています。この計算はF9を押すか、何か表の計算をしたら再計算されることを学んだのですが、私が使うには、ちょっと簡単に計算されすぎるので、F9を押したときのみ、か特定のコマを使ったときのみ再計算されるようにしたのですが、どのようにしたらそのようなそうさができるでしょうか? あるいはできないのか、知っている方がいたら教えてください。 よろしくお願いします。
- みんなの回答 (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
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
#2の補足: 後で気がついたのですが、質問のタイトルは、「乱数表」となっていましたが、もし、そうなら、乱数表を作るマクロを作ったほうがよいです。私自身、常に使っていますので、ご紹介できます。#2では、手間が掛かりすぎるはずです。
お礼
ありがとうございます。#2の方法は、マクロを使い慣れていない私にとって少し難しい内容だったので、その方法を教えていただけたら嬉しいです。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >わたしは一部の計算だけ手動にして、残りを自動計算にしたいのですが、 RANDBETWEEN 関数というのは、再計算関数といって、計算命令が出ると、どこにあっても、システムの乱数ジェネレータから取得して、再計算してしまいます。ですから、もし、そうされたくないのなら、以下のようにしてみたらよいと思います。計算を手動にする必要はありません。 ------------------------------------------- 挿入--名前--定義 名前(W): RNDB <---任意です。 参照範囲: =EVALUATE("RANDBETWEEN(1,10)") <---1,10 は数字の範囲 OK ------------------------------------------- セルに、 =RNDB とします。数値の変更の場合は、F2 を押して、Enter を押すと変わります。しかし、F9 では変わりません。 なお、最初、VBAかと思ってやったのですが、なぜか、この方法が一番良かったのです。
- okormazd
- ベストアンサー率50% (1224/2412)
ツール―オプション―計算方法―手動 をチェックしておく。
お礼
ありがとうございました。初めて計算を手動で管理することができました。ただ、わたしは一部の計算だけ手動にして、残りを自動計算にしたいのですが、そのような方法をとることはできるでしょうか? もし知っていたら、またよろしくお願いいたします。
お礼
マクロやVBAはこれまでやったことがなかったので、いろいろ大変でしたが、なんとか頂いたプログラムを使うことができるようになりました。ありがとうございます。