【エクセルでスロット作ってみる! #04 小役抽選】
※はじめに
VBAまだまだ初心者なので、知っている人が見たら「◯◯したらいいのに」とか「こうした方が良いよ」とか思うかもしれませんが、暖かく見守ってください(汗)
今回は、まず小役抽選するボタンを作ってみたいと思います。
このボタンがレバーの代わりになるってイメージです。
ランダム抽出は、関数だとINDEX関数とRANDBETWEEN関数の組み合わせでできますよね。
ここでは詳しく触れないですが、この2つの関数とCONCATENATE関数を使って「文章を自動で作ってくれる」なんてものを作ったことがありますが、もし興味のある方は調べてみてください。いるのか?
脱線しました(汗)
とりあえず関数でやってみましょう。
とりあえず、1〜10のリストの中からランダムでひとつを抽出する関数を作っていきます。
●まず、エクセルに10個の小役リストを作成します。
●次に、関数を入れます。
=INDEX(B2:B11,RANDBETWEEN(1,10))
└抽出させるリスト └1から最大値を記入
●これをD2のセル内に入れます。
●そうすると、関数を入れたD2セルにランダムで抽出されたものが表示されるって感じです。
VBAでやるってなると色々難しそうなので、
この数式を直接埋め込んでみましょうか……。
エクセル自体を「.xlsm(マクロ有効ブック)」の形式で保存してからVBAを立ち上げて、この関数を直に入れてみます。
調べたところ、「Formulaプロパティ」なるものを使用すればできそうです。
こんな感じです。
はじめに「Sub」、間に指示を入れて、最後に「End Sub」でワンセットのようです。
ボタンを作ってやってみましょう。
これでボタンを押すと……
できた!
ちゃんと表示されました。
しっかり1〜10のリストの中からランダムでひとつ抽出してくれてるハズです!
ただ、セル内には「ハズレ」という文字じゃなくて、数式が入ってます。
これだと後々エクセル自体が重くなりそうなので、抽出された文字情報だけを表示させたい。
検索!
……どうやら、セルを選択して「Selection.Value = Selection.Value」を入れればできそうです。どうしてかは不明ですが。
こんな感じです。
保存してボタンを押してみます……
よし!
今回作ろうとしてるものは、一番薄いフラグで1/1000なので、10までの範囲を1000にすればできそうです!
今回はこのくらいで!
次までに1000までのものを作っておくので、次は……どうしようか考えておきます(笑)
それでは!