- ベストアンサー
エクセルで100マスの乱数表を作るには
エクセルで縦10×横10の計100マスで、1から100までの数字(数字の重複なし)で乱数表を作るにはどうすれば良いか。
- みんなの回答 (12)
- 専門家の回答
質問者が選んだベストアンサー
VBAでやるのが簡単です。以下は重複の無い乱数発生のVBAサンプルです。 【手順】 1. [Alt]+[F11]で Visual Basic Editor(以下VBE)起動 2. [挿入]-[標準モジュール]クリック 3. 下記VBAコードをコピー&ペースト 4. VBEを閉じる 5. [ツール]-[マクロ]-[マクロ]で実行 【VBAコード】(次行から終わりまで) '10×10の重複しない乱数表 Sub Sample() Dim NumberBuf%(1 To 10, 1 To 10) Dim intNum%, i%, j%, ItemNum% Dim tmpBuf Dim Dic As Object 'Dictionaryオブジェクト生成 Set Dic = CreateObject("Scripting.Dictionary") 'Dictionaryの登録数が100になるまでループ Do Until Dic.Count = 100 '1~100までの整数で乱数発生 intNum = Int((100 * Rnd) + 1) 'Dictionaryに登録されているか? If Not Dic.Exists(intNum) Then '登録されていなければ追加 Dic.Add Key:=intNum, Item:=Empty End If Loop tmpBuf = Dic.Keys '乱数を10×10の配列に代入 ItemNum = 0 For i = 1 To 10 For j = 1 To 10 NumberBuf(i, j) = tmpBuf(ItemNum) ItemNum = ItemNum + 1 Next j Next i '転記先を変えるにはRange("A1")のA1の部分を変更 '10×10のセル範囲左上角のセルになります Range("A1").Resize(10, 10).Value = NumberBuf End Sub
お礼
KENKENSP様、このたびは愚問にもかかわらずご丁寧にご返答頂きまことにありがとうございました。おかげ様で問題は無事、完全に解決いたしました。さすがでございます。恐れ入りました。ご教授に心から深く深く感謝申し上げます。