持ってた筈のサイコロが見当たらない…!!
サイコロゲームを如何してもやりたぁ~い!!
先ず関数使ってサイコロを作成しよう!?
今日は、私が行った方法を書いて置こうと思います。![]()
先ず、IMEパッドの文字一覧の中からサイコロマークを見つけ出して、そのサイコロをExcelシート上に表示させ・・・
1~6の数字をランダムに・・・そのランダムに表示されたサイコロの目を取り出す・・・というイメージを関数の組合せで・・・
- 【サイコロのUnicordのコードポイントを知る方法】
- 【Excelシート上にサイコロを表示させる方法】
-
- 先ず、UnicordのコードポイントはU+○○○○で表示されてるのですが、○○○○の数字は16進数で表されてるらしいので、16進数(HEX)で記述された数値を1から10までの10進数(DEC)に変換するための関数HEX2DEC関数を使用し『=HEX2DEC(2680)』と入力してみると、シート上のセルにポインターを持って行くと『9856』と10進数に変換されてますのでこの関数を使用します。
-
- 次に、Unicodeに対応する文字や記号を返すことのできるUNICHAR関数を使用して表示させてみたいので『=UNICHAR(HEX2DEC(2680))』と入力してみます。
- すると、見事に『サイコロの目の1』が表示されました。
- ※ 挿入されたサイコロは見た目が小さいので大きく(今回はフォントサイズ120)しています。
-
- 上記のことを踏まえて、インデックス部分に指定した位置の値を取り出せるCHOOSE関数(インデックス , 値1 , [値2] , [値3] , ...)とこのインデックス部分に「最小値」を「1」以上、「最大値」を「6」以下の整数の乱数を発生させるRANDBETWEEN関数を使用して『=CHOOSE(RANDBETWEEN(1,6),』と入力します。
-
- そして、値部分には先程、HEX2DEC関数とUNICHAR関数で表示させてる各サイコロの目を当てはめてゆき、少々長くなりますが以下の記述となりますので、コピーして使用してください。
=CHOOSE(RANDBETWEEN(1,6),UNICHAR(HEX2DEC(2680)),UNICHAR(HEX2DEC(2681)),UNICHAR(HEX2DEC(2682)),UNICHAR(HEX2DEC(2683)),UNICHAR(HEX2DEC(2684)),UNICHAR(HEX2DEC(2685)))
- そして、値部分には先程、HEX2DEC関数とUNICHAR関数で表示させてる各サイコロの目を当てはめてゆき、少々長くなりますが以下の記述となりますので、コピーして使用してください。
-
-
- 次に、ボタンを設置したいセルを左上角から右下角へ『ドラッグ』します。
- すると、マクロの登録ダイアログが開きますのでマクロ名を『好みの名前』を付けます。
- 次に『新規作成』ボタンをクリックします。
-
- すると、Sub マクロ名()からEnd Subが入力表示された『VBAエディタ』が表示されます。
※ このSub マクロ名()とEnd Subの間に動作を指図するコードを入力するんです。
- すると、Sub マクロ名()からEnd Subが入力表示された『VBAエディタ』が表示されます。
-
- 先ず、1行目には変数名を宣言するための準備の「Dim」をはじめに記入し、ループ処理の「i」、そして、整数型を宣言する「As Integer」で『Dim i As Integer』と入力します。
- 2行目にはループ処理を1~300までという意味の『For i=1 To 300』と入力します。
- 3行目には数式を再計算させる意味の『Application.Calculate』と入力します。
- 4行目には実行中の処理を一時停止してキーボードやマウスで処理出来るようにする関数『DoEvents』と入力します。
- そして、5行目には先程のForのループ『Next i』と入力します。
- まとめて書くと以下の通りです。
このままコピーして貼り付けてお試しください。Dim i As Integer
For i = 1 To 300
Application.Calculate
DoEvents
Next i - 貼り付けが出来たらVBAエディタを『閉じ』ます。
-
- Excelシートに挿入されたボタンの名前を変更したいのでボタンを『右クリック』します。
- 開いたメニューから『テキストの編集』をクリックして編集します。
-
- これで完成です。
今回のボタンの名前は『サイコロを振る』にしました。
このボタンをクリックするごとにサイコロの目が都度変化します。
- これで完成です。
これで下準備は完成ですので、次はボタンをクリックしたらサイコロを振れるようにします・・・
-
遊んでみたいと思われた方はExcel関数をコピーし、VBAもコピーしてご利用くださいね。