今日は、長男のリクエストを取り上げます。
「数字を適当に並べてほしい」というのがそのリクエストです。
今回は、エクセルを使ってお応えしましょう。
10×10=100のセルを使って、ランダムに1から100までの数字でセルを埋めていきます。
以下のような感じです。
毎回、ランダムに数字が配置されますよ。
(なお、100個のセル範囲には、事前にセルの塗りつぶしを設定しておきました)

さて、さっそくコードを書いてみましょう。
ALT + F11 で、VisualBasicEditorを起動します。
「挿入」→「標準モジュール」をクリックします。
そこに、次のようにコードを記述してください。
-------------------------------------------------------
-------------------------------------------------------
一応、画像も載せておきますよ。

コードの解説は、プロシージャ内のコメントをご覧ください。
それでは、実行してみましょう。
Excelに切り替えて、Excel2003までは、「ツール」→「マクロ」→「マクロ」とクリックします。
Excel2007は、Altキーを押しながらF8キーを押してください。
実行ボタンをクリックします。

新たに1から100までの数字がランダムに配置されましたね。

今回は、10行×10列のセル範囲としましたが、変更した場合、コードのどこを変更したらいいのか考えてみてくださいね。
だい
「数字を適当に並べてほしい」というのがそのリクエストです。
今回は、エクセルを使ってお応えしましょう。
10×10=100のセルを使って、ランダムに1から100までの数字でセルを埋めていきます。
以下のような感じです。
毎回、ランダムに数字が配置されますよ。
(なお、100個のセル範囲には、事前にセルの塗りつぶしを設定しておきました)

さて、さっそくコードを書いてみましょう。
ALT + F11 で、VisualBasicEditorを起動します。
「挿入」→「標準モジュール」をクリックします。
そこに、次のようにコードを記述してください。
-------------------------------------------------------
Sub Numbering() Dim i As Integer Dim r As Integer Dim c As Integer Const MAX_NUM As Integer = 100 '以前の数字をクリア Range(Cells(1, 1), Cells(MAX_NUM, MAX_NUM)).ClearContents i = 1 '乱数ジェネレータを初期化(これで本当に乱数が発生する) Randomize '今回は100になるまで繰り返し処理 Do Until i = MAX_NUM + 1 '乱数で行番号と列番号を取得 r = Int(Rnd() * 10) + 1 c = Int(Rnd() * 10) + 1 '既に入力されているセルには書き込まない If Cells(r, c).Value = "" Then Cells(r, c).Value = i i = i + 1 End If Loop End Sub
-------------------------------------------------------
一応、画像も載せておきますよ。

コードの解説は、プロシージャ内のコメントをご覧ください。
それでは、実行してみましょう。
Excelに切り替えて、Excel2003までは、「ツール」→「マクロ」→「マクロ」とクリックします。
Excel2007は、Altキーを押しながらF8キーを押してください。
実行ボタンをクリックします。

新たに1から100までの数字がランダムに配置されましたね。

今回は、10行×10列のセル範囲としましたが、変更した場合、コードのどこを変更したらいいのか考えてみてくださいね。
だい

しかし、この表を5行20列にするには、どこを変えるか?
う~ん、分かりません。(笑)
1から200までの数字を10行20列に表示するならどうなるんだろう?
解答は、次回の記事でご紹介しますので、もうしばらくお待ちくださいね。
でも、エクセルの関数も本当にお利巧ですよね。