
当方、Excelは簡単な関数を使うレベルです。
マクロはほとんど使用した事が無く、
VBAは使用したことがありません。
最終的な目標は
同一の問題に対して、回答はランダムな答えを選択を用意するという物です。
例えば
A1に問題
A5-E5に
L1ーL40の一覧に用意した文字列をそれぞれランダムに入れるという形にしたいと思っています。
現状では答えがかぶってしまっても良いです。
最終的にはボタンで更新となれば理想です。
関数、マクロの使用、VBAの使用でも良いのですが、
できるだけ簡単な方法を探しています。
RAND関数・乱数生成など考えましたが、
考え方が間違っているのか、今の所上手く出来ません。
大変恐縮ですが、何を使用して行うのか、
また、手順を教えていただけると嬉しいです。
No.1ベストアンサー
- 回答日時:
RAND関数を使って
=ROUNDUP(RAND()*40,0)
とすれば、1~40の整数をランダムに取り出すことができます。
K1~K40に順番に1,2,3,・・・,40の数字を入れ、
A5セルに
=VLOOKUP(ROUNDUP(RAND()*40,0),$K$1:$L$40,2,0)
と式を入力してあげれば、VLOOKUP関数で、乱数で発生した整数に対応する文字列を取り出せます。
A1の式を、B5~E5にコピーしてあげれば完了です。
No.3
- 回答日時:
質問の説明を他人にも判るように実例でも挙げて書いてください。
>L1ーL40の一覧に用意した文字列をそれぞれ
「文字列」とは「問題文」のことですか。イメージがわかりやすいように書いてください。
例
L1 日本の首都は東京です
L2 山梨県には海辺がありません
L3 富士山は静岡県です
L4 日本は47の都道府県があります
・・
A5:E5に5問L1:L40から選択するのですね。
(エクセルとしては出来るだけ縦にA5:A9をお勧めします。)
A1に問題というのは何を指定するのですか。
ーーー
質問の内容らしく式を作ると
E5に
=INDEX($L$1:$L$40,RANDBETWEEN(1,40),1)
と入れてE9まで式を複写
ーーーー
しかし
http://maglog.jp/excel/Article258652.html
にあるように
乱数が求まるタイミング:RAND関数で求まる乱数は、以下のタイミングで変化します。
・セルの内容が変更されたときに変化します。。
・RAND関数を使用しているファイルを開いたときに変化します。
・キーボードのF9キーを押した時に変化します。
こんなに変わってしまうRand関数を使えるのでしょうか。
同じ式である=RANDBETWEEN(1,40)を2つのセルで入れても(当然だか)別の値が背とされる。他の関数では同じ値が返る。
またA1セルは変化のトリガーに使いたいのでしょうか。
結局関数・乱数では(出来れば)重複排除の件も含め難しいのでは。
ーーー
VBAでSheet1のChangeイベントに
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errr
If Target.Address = "$A$1" Then
'MsgBox Target.Address
Application.EnableEvents = False
i = 5
Do
p1:
x = Int(40 * Rnd) + 1
Cells(i, "A") = Cells(x, "L")
y = Application.CountIf(Range("A5:A" & i), Cells(i, "A"))
MsgBox y
If y > 1 Then GoTo p1
i = i + 1
Loop While i < 10
errr:
Application.EnableEvents = True
End If
End Sub
を貼り付ける
L2:L41に
a
b
c
z
a1
・・
a14
を入れる。
ーー
A1セルに何か値を入れると
E5:E9に 例えば
q
a9
a6
o
a13
がセットされた。
一応A5:A9では同じものは排除した。
A1の値を変えると別の組み合わせになる。A1セルは「次へ」ボタン的な役割を担う。
VBAは値だけをセットするので、(A1を除く)他のセルの値が変わったときに組み合わせが変わってしまうことは無い。
ーー
経験したビジネスでは、余り乱数を使うまでロータス・エクセルを使ったこともなく、上記で正しいか(小生の力量不足)、質問者の意図どおりかわからないが、小生としては、上記を作るのさえも、難しかった。
>VBAは使用したことがありません。
のであればVBAは無理でしょう。
もともとこの質問のタイプは、エクセルには不適な課題ではないでしょうか。
関数では出来ないと言った関係で、VBAで出来無いかやってみただけです。
質問が明確では無く申し訳ありませんでした。
A1にいれるのは日本の都道府県はどれですか?
A5からE5に都道府県名を入れるというレベルでした。
VBAについては、せっかく書いていただいたのですが、やはりすぐには無理だと判断いたしました。
Excel向きではないという意見も、当初より思っていたのですが、
何分能力的に限界があるため、他のアプリケーションやプログラムではさらに敷居が高いと判断し、Excelで出てきた結果をコピー&ペーストなどで、修正するという方法でも致し方ないと思っておりました。
非効率な方法ではあるかと思いますが、
自分の能力ではNo.1&No.2の方の回答から目的のデータは
出てきましたのでそれを利用していきたいと思います。
正直、ボタンレベルではなくF9で更新というのも知りませんでした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
表計算ソフトでの様式の呼称
-
vba テキストボックスとリフト...
-
エクセルのVBAで集計をしたい
-
【マクロ】数式を入力したい。...
-
【マクロ】実行時エラー '424':...
-
【マクロ】元データと同じお客...
-
【マクロ】左のブックと右のブ...
-
他のシートの検索
-
【画像あり】オートフィルター...
-
【マクロ】【配列】3つのシー...
-
Office2021のエクセルで米国株...
-
【マクロ】【相談】Excelブック...
-
エクセルでフィルターした値を...
-
【画像あり】【関数】指定した...
-
エクセルのリストについて
-
エクセルに写真が貼れない(フ...
-
エクセルのライセンスが分かり...
-
エクセルの複雑なシフト表から...
-
【関数】=EXACT(a1,b1) a1とb1...
-
エクセルシートの見出しの文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】元データと同じお客...
-
エクセルの関数について
-
【画像あり】オートフィルター...
-
エクセルのVBAで集計をしたい
-
エクセルのリストについて
-
【マクロ】数式を入力したい。...
-
【マクロ】【相談】Excelブック...
-
Office2021のエクセルで米国株...
-
【マクロ】実行時エラー '424':...
-
他のシートの検索
-
エクセルの複雑なシフト表から...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
【マクロ】左のブックと右のブ...
-
【マクロ】変数に入れるコード...
-
エクセルシートの見出しの文字...
-
【マクロ】別ファイルへマクロ...
-
【関数】同じ関数なのに、エラ...
-
Amazonでマイクロソフトオフィ...
-
ページが変なふうに切れる
おすすめ情報