プロが教える店舗&オフィスのセキュリティ対策術

エクセルを使って、画面上に0~60の数字を表示させたいのです。
順番は、ばらばらでクリックするたびに、画面に1つずつの数字を表示させたい
と思います。
エクセルと書きましたが、パワーポイント等でもかまいません。
どなたかご教授願います。

A 回答 (3件)

ビンゴゲームって0はありましたっけ?



ま、それはともかくそういうことならただ乱数を表示すればいいってもんでもないと思います。
1~60がでたらめに出てくる以外に

一度出た数字は2度と出ない

という条件も必要でしょう。
というわけで

1~60の60個の数字をでたらめに並べ替え、順に表示する

が正解だと思います。
それをビンゴっぽくするなら

たとえばExcelなら
シートを60枚用意し、
そこにワードアートなどを使って1~60の数字をあらかじめ1つずつ書いておき、
別のシートの1~60の数字をランダムに並べたリストを用意し、
ユーザーフォームにボタンを貼りつけておいて、
それをクリックすると先ほどのリストを順に読んで、該当のシートを表示する
ボタンをクリックするたびに、先ほど表示したシートは非表示にし、新しいシートを表示する

というアイデアはどうでしょうか?

PowerPointならシートがスライドに代わるだけでしょう。
私はPowerPointの方がいろいろと視覚効果も期待できるので賛成ですが
私自身PowerPointのVBAには詳しくないです。
    • good
    • 0

ビンゴゲームにするなら、最初から言っていただいたほうがよいと思います。

でも、ご質問も#1の補足内容も何か疑問に残ることがあります。

>画面いっぱいに数字を表示し、マウスをクリックすると
>次の番号が出るようにしたいです。

画面一杯と言っても、Excelの場合は、標準的に、一画面で、400セルぐらいありますが、ビンゴゲームで、そんなに並べてもしょうがないと思います。0~60 なら、61セル使うということではないでしょうか。でも、60では、正方形にならないのではないかと思います。64とか、81とか、100とか、縦横列数が同じ数でないといけないはずです。

0~60 というように、数字の個数が奇数ですと、出てこない数字もあるということですね。

'シートモジュールのみ(ダブルクリック・イベント)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim rng As Range
 Dim ret As Variant
 Set rng = Range("A1:F10") '入力範囲
 Cancel = True
 If Target.Value <> "" Then Exit Sub
 If Intersect(Target, rng) Is Nothing Then Exit Sub
 Randomize
 Do
  n = Int(Rnd() * 61) '0~60まで
  ret = Application.CountIf(rng, n)
  If ret = 0 Then
   Target.Value = n
   Exit Do
  End If
 Loop
End Sub
    • good
    • 0

こんばんは。



仮にExcelだとして「画面」って何ですか?
ダイアログボックス? シートのセル?

セルだったら 「=INT(RAND()*61)」とでもどこかのセルに入れておけば
とりあえず乱数は表示できます。

ダイアログボックス(メッセージボックス)に表示させたいなら

Sub test()
MsgBox Int(Rnd * 61)
End Sub

とでもコーディングしておけば、これを走らせるたびに乱数が表示されます。

「クリックするたびに」もわかりにくいです。
「何を」クリックするのでしょうか。

私もすぐ返事が欲しいです。

この回答への補足

早々にご回答ありがとうございます。

状況説明不足ですみません。

ビンゴゲームの番号表示に使いたいので、
画面いっぱいに数字を表示し、マウスをクリックすると
次の番号が出るようにしたいです。

補足日時:2011/01/25 15:21
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!