最近エクセルVBAを勉強し始めた初心者です。
エクセル上でコマンドボタンを押すとF12~H12にそれぞれ0~9の数字を一定時間回転させF12、H12、G12の順(左、右、真ん中の順)に時間差で0~9の乱数を発生させ表示させるには(パチンコのリーチみたいな感じ?)どのようなプログラムを組めばよろしいでしょうか?
数字を回転させ乱数を表示させるプログラムは
For = i = 0 To 100
Range("●●").Value = Int(Rnd * 10)
Next i
です。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
また授業ですか?
1日をまた無駄に過ごしたの?
http://okwave.jp/qa5388388.html
前回の回答は理解できなかったようで残念です
前回より簡単な気がします
'サンプル
Sub test()
Dim rng As Range
Dim i As Integer
Dim flg As Integer
'一定時間、数字を回転させる
For i = 1 To 10000
For Each rng In Range("f12:h12")
flg = 0
If rng.Column = 6 And i > 3000 Then flg = 1
If rng.Column = 8 And i > 6000 Then flg = 1
If flg = 0 Then rng.Value = Int(Rnd * 10)
Next rng
Next i
End Sub
人に聞いたら身になりませんよ~
この回答への補足
物はついでに教えて欲しいのですがF12とH12には必ず同じ数字(5,●,5)、(7,●,7)を出現させるにはどうすればよろしいのでしょうか?
補足日時:2009/11/11 01:01いつもお世話になっております。今回もわかりやすいプログラムありがとうございます。回答を見てああ、そういう視点で組むのかと勉強させられる日々でございます。
No.4
- 回答日時:
>物はついでに教えて欲しいのですが・・・
ついでなので、#2の回答に追加のみ
'サンプル
Sub test()
Dim rng As Range
Dim i As Integer
Dim flg As Integer
'一定時間、数字を回転させる
For i = 1 To 10000
For Each rng In Range("f12:h12")
flg = 0
If rng.Column = 6 And i > 3000 Then flg = 1
If rng.Column = 8 And i > 6000 Then flg = 1
If rng.Column = 6 And i = 3001 Then rng.Value = IIf(rng.Value > 4, 7, 5)
If rng.Column = 8 And i = 6001 Then rng.Value = Cells(12, 6).Value
If flg = 0 Then rng.Value = Int(Rnd * 10)
Next rng
Next i
End Sub
No.3
- 回答日時:
最近RaiseEventを覚えたので、試みに作ってみました。
それらしい動きをすると思います。当方XL2000ですので、他のバージョンで動かなかったらご容赦下さい。PCの仕様によらず速度が一定(たぶん)で、CPUを100%占有しないところがメリットですかね。(2~4%位でした)☆シートモジュール
シートにコマンドボタン(コントロール)を一個おきます。
Private WithEvents myTimer As myTimerClass
Private Sub CommandButton1_Click()
Randomize (Now)
Set myTimer = New myTimerClass
myTimer.TimerTask (10)
DoEvents
End Sub
Private Sub myTimer_UpdateTime1(ByVal counter As Long)
If counter > 600 Then
Range("A1").Value = Int(Rnd * 10)
End If
End Sub
Private Sub myTimer_UpdateTime2(ByVal counter As Long)
If counter > 300 Then
Range("B1").Value = Int(Rnd * 10)
End If
End Sub
Private Sub myTimer_UpdateTime3(ByVal counter As Long)
If counter > 0 Then
Range("C1").Value = Int(Rnd * 10)
End If
End Sub
☆クラスモジュール myTimerClass
Public Event UpdateTime1(ByVal counter As Long)
Public Event UpdateTime2(ByVal counter As Long)
Public Event UpdateTime3(ByVal counter As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private myCounter As Long
Public Sub TimerTask(ByVal Duration As Long)
Sleep Duration
Select Case (myCounter Mod 3)
Case 0
RaiseEvent UpdateTime1(myCounter)
Case 1
RaiseEvent UpdateTime2(myCounter)
Case 2
RaiseEvent UpdateTime3(myCounter)
End Select
myCounter = myCounter - 1
Loop
End Sub
Private Sub Class_Initialize()
myCounter = 1000
End Sub
No.1
- 回答日時:
エクセル(表計算ソフト)は、仕事の数字(金額、個数、人数など)を扱うのに適したものと思います。
ゲームや遊興のソフト作成に使うためには、適したもの(メソッドなど)が少なく、却って普通のエクセルVBAの本に解説されている課題より、難しいと思います。時間(差)の問題なども難しい。下手にやると、一瞬に終わって何がなんだか判らなくなったりする。上記のエクセルVBAの普通の解説書にあるエクセルVBAを少し判って、多分エクセルVBAを捨ててから、他のもの(VBなど)でやることになるでしょう。ゲーム的なものは特有の技術(サブプログラムの集積)が要ると思います。
>エクセルVBAを勉強し始めた初心者です。がやるべき課題ではないと思う。
両者で進むべき方向が違う。
それにこの課題は丸投げです。回答者にたよらっず、自分で必要なコード群を1つづ勉強してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) ExcelVBAで質問です。離れた二次元配列を一つにしたい 4 2022/07/26 19:06
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Visual Basic(VBA) Powerpointでランダムな数字の結果を表示するマクロ 2 2023/08/04 10:04
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MSFormsとは何ですか?
-
若手エンジニアはみんなJav...
-
Pythonを勉強する道のり
-
データベースのデータをTextBox...
-
HTMLCSSの勉強範囲について
-
C++ですごろくゲーム作成
-
サーブレットで電卓をつくる
-
javaの二冊目の本
-
VBAの「for i=1 to cells(…」...
-
Javaの勉強の仕方について
-
C/C++の独学について
-
サーブレット&JSPでswing使...
-
2ショットチャットができるHP...
-
仕事に通用する Java の学習本...
-
io(入出力)とスレッドについて
-
Java JSP/サーブレット strut...
-
vba クリップボードクリアにつ...
-
プログラミング開発経験とは?
-
JAVA プログラミング ロッカ...
-
Javaでのエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MSFormsとは何ですか?
-
VBAの「for i=1 to cells(…」...
-
エクセルVBAを動かすノートPC...
-
データベースのデータをTextBox...
-
超恥愚問ですが、CとC++の間に...
-
XMLとUMLの相違点?
-
サイト訪問者の情報を取得したい
-
質問です。 Java言語を勉強出来...
-
ASP、ASP.NETの勉強をしたいの...
-
テンプレートエンジンとフレー...
-
cin.peek() cin.ignore(100,'\\n')
-
2ショットチャットができるHP...
-
JSPとサーブレットは両方勉強す...
-
現在C、C++、Javaについて勉強...
-
cまたはc++は半年である程度...
-
C#とDelphiの違いについて
-
Excel VBAマクロをマスターする...
-
中学生でいきなりJava
-
C/C++の独学について
-
JAVAを使用したホームページ
おすすめ情報