円形ルーレットを作りたい
要API/サンプル有
|
|
TOP>Excel/Word/PowerPoint
|
|
○ポイントはドーナツグラフのSeriesCollection コレクション オブジェクト
|
ルーレットといえば、やっぱり円形。ルーレットをEXCELで作っておいて、ゲームの時に使えば、「おっ」と驚かせることができるかもしれませんね。そこで、ドーナツグラフを使ってハイライトがクルクル回るルーレットを作ってみましょう。
(1) ドーナツグラフの系列を作成
(この例では セルA1からA20までの全部のセルに数値 1 を入力します)
(2) セル A1:A20 を選択して [挿入]タブ>「グラフ」グループの[その他のグラフ]リボン>[ドーナツ]として、ドーナツグラフを作成(図1)

(図1)ドーナツグラフ
(3)ドーナツグラフを選択(図2)して、グラフツールの[書式]タブ>「図形のスタイル」グループの[図形の枠線]プルダウン>として、ドーナツの区切り枠線の色(図3)と、ドーナツの各系列の色(図4)を決める
(この例では枠線を黒、各系列を白とします)

(図2)ドーナツグラフを選択

(図3)ドーナツグラフの枠線色を決める

(図4)ドーナツの各系列の色を決める
(4) ドーナツグラフの系列(A列)を選択し、右クリック>ショートカットメニュー>[非表示(H)]として、データ系列を非表示化
(5) グラフエリアをクリックしてグラフオブジェクトを選択
(6) 名前ボックスに Roulette と記入(図5)
(この例では Roulette という名前をマクロから呼び出します)

(図5)グラフオブジェクト名の設定
(7) VBEを開いて標準モジュールにコードを記入。コード例は下記
|
|
○基本構成
|
まずグラフの要素数を抽選範囲の数に合わせる処理を行います。そのために、便宜上グラフの参照するセルの範囲に数値の 1 を入力しグラフの範囲を再設定します。
次に、抽選範囲内で乱数を発生させ、SeriesCollectionコレクションオブジェクトのPointsプロパティのインデックス値を 1 ずつ増やし、ColorIndexプロパティでハイライトカラーに変えてゆきます。このとき、Pointsプロパティのインデックス値で、色を変えた一つ前のインデックス値のColorIndexプロパティはベースカラーに戻してゆきます。
抽選範囲の最大値になったら、Pointsプロパティのインデックス値は再び 1 に戻します。これをループさせながら、Sleep API関数を挟んで少しずつループ速度を落としてゆきます。
|
|
○関連情報・その他の方法
|
・EXCEL2000の場合はこちら
・ルーレットを作る(EXCEL2010)
|
|
○サンプル
|
・ サンプルファイルはこちら(要解凍) 14KB
|
|
○注意
|
・抽選範囲myRandSpanが大きい場合 rt, slpTime は小さい値にしなければ、ルーレットの数字の切り替わりが最後の方で間延びします。
・マクロを途中で止める場合は、Escキーを押してください。
|