
当方、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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ランダムで四択の問題を作る場合にvbaで何を学べばいいでしょうか。 1 2022/04/14 16:45
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) EXCEL VBAで教えてください。 1 2022/12/22 04:20
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- 情報処理技術者・Microsoft認定資格 MOS試験Excelエキスパートを受けようか考えています。 Excelは仕事で使用。 関数は入れ子含 2 2022/12/18 10:05
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- Excel(エクセル) エクセル関数の変わった使い方 3 2022/05/13 17:12
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセル
-
エクセルのdatedif関数を使って...
-
【マクロ】アクティブセルの時...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
【マクロ】A列にある、日付(本...
-
【マクロ】3行に上から下に並...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】WEBシステムから保存...
-
iPhoneのExcelアプリで、別のシ...
-
【エクセル】期限アラートについて
-
Excelファイルを開くと私だけVA...
-
Excelの新しい空白のブックを開...
-
Excelについての質問です 並べ...
-
マクロ・VBAで、当該ファイルの...
-
VBA チェックボックスをオーバ...
-
派遣会社とかハローワークとか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報