割り当てた乱数をぱぱっと消してしまうマクロを作りますよ。
短いプロシージャなので、とりあえず全部載せてみます。
Dim i As Integer
For i = 1 To 4
Worksheets(i).Range("B:B").SpecialCells(xlCellTypeConstants).Clear
Next
End Sub
Range("B:B") は「 B 列から B 列まで」つまり「 B 列のセル全て」を参照するプロパティです。その次の
はとても応用性の高いメソッドです。参照しているセルから特定のセルを抜き出す機能があり、指定する引数によって空白セルや数式の入ったセルをまとめて選択できます。「乱数消去マクロ」では、
すなわち「定数が含まれているセル」を指定しています。「あれ? B 列には乱数が入っているんだから数式でしょ?」と思う人もいるかもしれませんが、エクセル関数の "=Rnd()" と VBA の "=Rnd" は異なる記述です。エクセル関数の Rnd は数式(xlCellTypeFormulas)の形でデータが入っていて、シート上で何か操作するたびに乱数を入れ替える機能をもっています。しかし VBA の Rnd はあくまで乱数テーブルから選んで「定数」をセルに入れるだけです。ためしにセルをクリックしても、ただの数字が入っていることがわかります。
は、選んだセルのデータを消去するメソッドです。 このメソッドを使用するとセルの中の「値・数式・書式・コメント」すべてがクリアされます。似たようなメソッドに値と数式をクリアする ClearContents メソッドもあります。こちらを使っても構わないのですが、Clear のほうが短い記述ですむので、書式を残す必要がない状況では Clear を使ったほうが良いと思います。
以上の操作を4つのシート全てにおいて実行し、乱数を全て消し去ります。
「いつどこソフト」の完成です!
ついにですよ! いよいよですよ!
前回作ったマクロをぽちっと嵌め込めば「いつどこソフト」が完成しちゃいますよー。すごいですねー。楽しみですねー。え? 早くしろ? はいはい。それでは、ぽちっとな!
乱数割当
並び替え 1
並び替え 2
並び替え 3
並び替え 4
乱数消去
End Sub
できました! 3つのマクロが組み合わされて「いつどこソフト」が完成しましたよ! ここまで読んでくださった皆さん、どうもありがとー!
でもプログラミングって、何となくプラモデルを作るのに似ていると思いませんか? 部品をこつこつ組み合わせていく過程が何とも楽しいですよね!
「いつどこソフト」基本型の開発記事はこれで連載を終わりますが、まだほんの序章に過ぎません。ここまで学んだことを土台にして、「プロファイルエディタ」や「タイトルクリエータ」、さらにはそれらを組合わせた「KOBATO's BOOK」の開発に進みます。これは「いつどこソフト」に比べるとはるかに複雑な構造をもつソフトですので、さらにたくさんの知識が必要です。
でも大丈夫! こばとちゃんがサポートするから大丈夫!
どんな複雑なソフトも結局は、こつこつと簡単なことを積み上げていくだけのことですから! 「もっともっと VBA について学びたい」という人は、ぜひまた Kobato と一緒に「いつどこ道」を歩みましょう!