出産前後の痔にはご注意!

 エクセルでルーレットやビンゴ、あみだくじなどを作成できると聞きました。
どのようにして作るのか、もしくは分かりやすく解説しているサイトがあればお教えください。
PCは NEC VersaPro  WINDOWS XP です。
 ちなみに私は、文書作成や表計算などの操作はできますが、そういうシステム系の方は詳しくありませんので、そのあたりも踏まえてご回答願います。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

エクセルマクロで作成したゲームやパズルを紹介しているところです。


リンクがたくさんありますので、楽しんで。

VBAアクションゲーム?Excelで動かそう!
http://www1.plala.or.jp/chikada/

参考URL:http://www1.plala.or.jp/chikada/
    • good
    • 1

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q何かEXCELで『抽選』ができるみたいですが・・・

 何か聞くところによるとEXCELで『抽選(発表などの順序決め)』みたいなことができる、って聞いたんですが本当でしょうか?もし、本当であればやり方をご教授願います。ちなみに小生の使用しているバージョンは2003(SP2)です。
よろしくおねがいします。

Aベストアンサー

No.2の人です。

まず訂正。正確には「0から(N-1)」でした。
Nというのは任意の整数値のことで、例えばN=10だとすると、
=INT(RAND()*10)で、0~9までの間でランダムな数字が出ることになります。
試しにセルに↑を入力して試してみてください。

RAND()とRANK()を使う方法はNo.3さんの方がわかりやすいですね。

QVBAで作れるかな?

エクセルVBAで、
スタートボタンを押すと値の入ってるセルを自動的に移動していって、ストップボタンを押すと止まる。
そんなルーレットみたいなものって作れますか???

Aベストアンサー

ストップボタンはないけれど、こんなの作ってみました。
まっさらなワークシートで試してみてください。

Sub ルーレット()
Range("B3:K9").Select
With Selection
.Font.Name = "Arial Black"
.Font.Size = 20
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
End With
ActiveWorkbook.Names.Add Name:="table", RefersTo:=Selection
n = 0
For Each c In Range("table")
n = n + 1
c.Value = n
Next
For i = 1 To 2
For Each c In Range("table")
c.Select
For m = 20 To 3 Step -1
Selection.Interior.ColorIndex = m
Next m
Range("table").Interior.ColorIndex = 0
Next c
Next i
Randomize
x = Int(Rnd * 70) + 1
For Each c In Range("table")
c.Select
For m = 20 To 3 Step -1
Selection.Interior.ColorIndex = m
Next m
Range("table").Interior.ColorIndex = 0
If c.Value = x Then
Selection.Interior.ColorIndex = 3
Exit Sub
End If
Next c
End Sub

ストップボタンはないけれど、こんなの作ってみました。
まっさらなワークシートで試してみてください。

Sub ルーレット()
Range("B3:K9").Select
With Selection
.Font.Name = "Arial Black"
.Font.Size = 20
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
With .Borders
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
.HorizontalAlignme...続きを読む

Qパワーポイントのアニメーション設定について

(1)~(10)の番号を隠している画像を,クリックした順番に非表示にするアニメーションを設定したいのですが、実現可能でしょうか?
(順番を決めるくじのようなものを作成したいと思っています)

マクロでないと実現できない場合、ソースを教えていただけると助かります。

よろしくお願いいたします。

Aベストアンサー

mougでも同じような回答をしましたが...

●一般機能の場合
1.
10個の画像すべて選択
→アニメーションの設定
→効果の追加
→終了
→クリア など

2.
下の白くて長い長方形に新しくできた
 10個のアニメーション項目のうち
 まずは最初の画像1の項目をクリック
→右端の▼クリック
→タイミング
→開始のタイミング▼▼クリック
→次のオブジェクトをクリック時に効果を開始 にチェック
→その右から 画像1▼を選択

3.
上の2.を画像2,画像3,..画像10まで繰り返す

●マクロ利用の場合
10個の画像を選択して以下のどちらかのマクロで
[最初のコードはパッと消える、2番目のコードはワイプで消える]

Sub Anim_ExitAppear()
Dim Sld As Slide
Dim Shp As Shape
Set Sld = ActiveWindow.Selection.SlideRange(1)
For Each Shp In ActiveWindow.Selection.ShapeRange
  With Sld.TimeLine.InteractiveSequences.Add.AddEffect( _
        Shape:=Shp, _
        effectId:=msoAnimEffectAppear, _
        Trigger:=msoAnimTriggerOnShapeClick)
    .Timing.TriggerShape = Shp
    .Exit = msoTrue
  End With
Next
End Sub

Sub Anim_ExitWipe()
Dim Sld As Slide
Dim Shp As Shape
Set Sld = ActiveWindow.Selection.SlideRange(1)
For Each Shp In ActiveWindow.Selection.ShapeRange
  With Sld.TimeLine.InteractiveSequences.Add.AddEffect( _
        Shape:=Shp, _
        effectId:=msoAnimEffectWipe, _
        Trigger:=msoAnimTriggerOnShapeClick)
    .Timing.TriggerShape = Shp
    .Exit = msoTrue
    .EffectParameters.Direction = msoAnimDirectionLeft
  End With
Next
End Sub

mougでも同じような回答をしましたが...

●一般機能の場合
1.
10個の画像すべて選択
→アニメーションの設定
→効果の追加
→終了
→クリア など

2.
下の白くて長い長方形に新しくできた
 10個のアニメーション項目のうち
 まずは最初の画像1の項目をクリック
→右端の▼クリック
→タイミング
→開始のタイミング▼▼クリック
→次のオブジェクトをクリック時に効果を開始 にチェック
→その右から 画像1▼を選択

3.
上の2.を画像2,画像3,..画像10まで繰り返す

●マクロ利用の...続きを読む

QExcelで事前にセルに入力した言葉をランダムに表示

例えばA1に「いぬ」 A2に「ねこ」 A3に「ぞう」 A4に「たぬき」 A5に「きつね」と入力します
次に
B1~B10に 「いぬ」「ねこ」「ぞう」「たぬき」「きつね」のいずれかを自動にランダムに表示する方法を教えてください
こんな便利な機能があれば良いと思うのですが・・・

Aベストアンサー

=INDIRECT("A"&INT(RAND()/0.2)+1)

INT(RAND()/0.2)+1 で1~5までの整数が得られます。
INT(RAND()/0.1)+1 で1~10までの整数が得られます。
INT(RAND()/0.02)+1 で1~50までの整数が得られます。
INT(RAND()/0.01)+1 で1~100までの整数が得られます。

それでA1からA5、A1からA10、A1~A50、A1~A100のセルの内容を取得しています。A2からなら+2にしてください。
F9キーを押すたびに再計算されて、表示も変わります。

Qエクセル指定した範囲からランダムで一つ抽出

エクセルの関数についての質問なのですが、

B1~B5に値がならんでいたとして、B1~B5の中からランダムに一つ抽出したものをA3に表示する関数はありますか?

Aベストアンサー

A3に次の式を入力すればよいでしょう。

=INDEX(B1:B5,RANDBETWEEN(1,5))

Qダーツの的みたいな掃除当番表を作りたいです。

学校によく貼ってある掃除当番表みたいなものを、パソコンで作れますか?

大小の同心円の紙を二枚重ねて、外側に掃除する場、内側に当番の名前を書いて中心をピンで留めてくるくる回すという感じです。

文字は時計みたいに一方向でなく全て円の中心が下になるようにしたいです。

エクセルの円グラフでもできるのでしょうか?

ご存知の方、よろしくお願いいたします。

Aベストアンサー

>当番表みたいなものを、パソコンで作れますか
できます。

ただ、エクセルの円グラフ・・・・よりか、
エクセルの図形描画ツール の
   オートシェープ>基本図形>円弧 で扇形を使う方が簡単だと・・・

   円弧は、シフト押しでドラッグすれば、円になるし、
   半径の変更はオートシェープの書式設定で、直接数値(高さ、幅、角度)入力すれば、正確に描けるし、
   弧の両端ポイントを動かせば、弧の角度も変更出来るし・・・
   塗りつぶしの色も自由だし、・・・・・

エクセル、ワードの図形描画でなくても
ドロー系のソフトなら、同様な事ができますよ・・・・むしろ、ドローソフトの方が多機能です。

Qエクセルでの指定文字 カウントについて

エクセルで並んだデータでの指定した名前だけの個数をカウントするにはどうすればいいのでしょうか?

山田 高橋 佐藤
高橋 梅田 赤田
 西 山田 梅田
佐藤 山田 梅田

名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?

Aベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

Qエクセルマクロ、VBAにてあみだくじ

初心者です。宜しくお願いいたします。

エクセルでくじを作りたいと思います。

エクセルのシートに、あみだくじというボタンを押すと
1~15までの数字及び、「あなたはこの数字です」というメッセージが乱数として
重ならないで出ると言うものを作りたいのです。
(15回より多くクリックできないという事もしたいと思います。)

何か良い知恵はありませんか。宜しくお願いいたします。

Aベストアンサー

こんばんは!
一例です。

↓の画像のようにSheet2に1~15の数値を表示させ、それを利用してSheet1のA1セルに表示させるようにしてみました。

Sheet1にコマンドボタンを挿入 → 挿入したコマンドボタン上でダブルクリック → VBE画面が出ますので、
↓のコードをコピー&ペーストしてコマンドボタンをクリックしてみてください。
(Sheet2の表は作る必要はありません)

Private Sub CommandButton1_Click() 'この行から
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1")
Set ws2 = Worksheets("sheet2")
If ws2.Range("C1") = "" Then
処理1:
ws2.Range("A1").FormulaR1C1 = "=rand()"
ws2.Range("A1").AutoFill Destination:=ws2.Range("A1:A15")
ws2.Range("A1:A15").Copy
ws2.Range("A1").PasteSpecial xlPasteValues
ws2.Range("B1").FormulaR1C1 = "=rank(RC[-1],R1C1:R15C1)"
ws2.Range("B1").AutoFill Destination:=ws2.Range("B1:B15")
ws2.Range("C1") = ws2.Range("B1")
ws1.Range("A1") = "あなたの番号は、" & ws2.Range("C1") & "番です。"
Else
Dim i As Long
i = WorksheetFunction.Match(ws2.Range("C1"), ws2.Range("B1:B15"), False)
ws2.Range("C1") = ws2.Range("B" & i + 1)
ws1.Range("A1") = "あなたの番号は、" & ws2.Range("C1") & "番です。"
End If
If ws2.Range("C1") = ws2.Range("B15") Then
If MsgBox("これ以上クリックできません。" & vbCrLf & "「クジ」を新しくしますか?" _
, vbYesNo) = vbYes Then
GoTo 処理1
Else
Exit Sub
End If
End If
End Sub 'この行まで

こんな感じではどうでしょうか?m(__)m

こんばんは!
一例です。

↓の画像のようにSheet2に1~15の数値を表示させ、それを利用してSheet1のA1セルに表示させるようにしてみました。

Sheet1にコマンドボタンを挿入 → 挿入したコマンドボタン上でダブルクリック → VBE画面が出ますので、
↓のコードをコピー&ペーストしてコマンドボタンをクリックしてみてください。
(Sheet2の表は作る必要はありません)

Private Sub CommandButton1_Click() 'この行から
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets("sheet1")
Set ws2 = Works...続きを読む

QExcel VBAで「プログラム実行」ボタンと「プログラム停止」ボタンをつけたい

ExcelでVBAを使いアプリをつくっています。
プログラムを実行させるボタンはもちろんつくれるのですが、
プログラムを停止させるボタンをつくるにはどうしたら良いのかと悩んでいます。

ボタンに登録できるのはひとつのプロシージャですよね。
とすると「他のプロシージャを止める」プロシージャをつくらねばならないのでしょうか。とするとどうやって・・・?

Aベストアンサー

s_husky です。

状況が判明したので再回答!

Public StopNow As Boolean

Public Sub Test()
  Do Until StopNow
    Sheets(1).Cells(1, 1) = Sheets(1).Cells(1, 1) + 1
    Pause 10
  Loop
  If StopNow Then
    MsgBox "Test の実行をストップしました。"
  End If
End Sub

Public Sub Pause(ByVal PauseTime As Single)
  Dim Finish As Single
  
  Finish = Timer + PauseTime
  Do
    DoEvents
  Loop Until Timer > Finish
End Sub

Private Sub CommandButton2_Click()
  StopNow = True
End Sub

Private Sub CommandButton1_Click()
  Test
End Sub

起動したプロシージャを止める必要があるということはループ処理と理解。
ならば、ループの条件を操作すれば宜しいかと。
CommandButton1 で起動した Test は CommandButton1 で止めれます。

Application.OnTime TimeValue("16:30:00"), "Test"

で起動しようと同じ理屈。

Application.OnTime は、一種の起動ツール。
当然に停止機能もあるが、停止を制御するには上記のような仕掛けが必要と思います。

s_husky です。

状況が判明したので再回答!

Public StopNow As Boolean

Public Sub Test()
  Do Until StopNow
    Sheets(1).Cells(1, 1) = Sheets(1).Cells(1, 1) + 1
    Pause 10
  Loop
  If StopNow Then
    MsgBox "Test の実行をストップしました。"
  End If
End Sub

Public Sub Pause(ByVal PauseTime As Single)
  Dim Finish As Single
  
  Finish = Timer + PauseTime
  Do
    DoEvents
  Loop Until Timer > Finish
End Sub

P...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング