-PR-

QExcelでランダムで選んだ行を別のシートに出力

A zap35 さんからの 回答

  • 2006-06-13 16:03:34
  • 回答No.3
#02です。一番簡単そうな方法で説明します。

過去の問題が登録されているBOOKを開いて、ツール→マクロ→新しいマクロの記録 を選びます。「マクロの記録」といウィンドウはそのままOKでよいです。

次にツール→マクロ→記録終了 を選びます。これで(見えませんが)標準モジュールシートが作成されました。次にそのシートを表示させます。そのためには Alt+F11 を押下します。

すると 「Sub Macro1() ・・以下省略」のような、今記録したマクロが表示されているはずです。この1行目のSub Macro1()の上に#02のマクロ全文をペーストしてください。(Option Explicitが先頭行になるように)

元の問題文のシートに戻り、シート名を”過去問”に変更して、Alt+f8 を押下すると、実行可能なマクロのリストが表示されますから、その中から”問題作成”を選んで「実行」ボタンをクリックしてみてください。

なお#02のマクロは夜中に急いで作ったので、美しくありません(→言い訳です)
A列の番号は途中の行が空白でも良いですが、最小値は1で抜け番がないことが前提となっていますのでお気をつけください。抜け番があると
k = Application.Match(NO(l - 1), Worksheets("過去問").Range("A1:A2000"), 0)
の行でエラーとなる場合があります。

過去問(第6回以降)を行の末尾に追加してもマクロは動作するはずです。
補足コメント
おっしゃる通りにやってみたところ

IntRND = Int((Rnd(Now()) * 1062347) Mod NumMAX) + 1

の行でエラーが出たみたいです。

どうしたらいいでしょうか?
投稿日時 - 2006-06-13 17:02:39
  • 同意数0(0-0)
  • ありがとう数0
-PR-
-PR-
-PR-
-PR-
-PR-
-PR-
-PR-
ページ先頭へ