アクセス小僧:乱数を使ったアニメの様なもの [コンピューター]
アクセスのフォームでボタンの色や表示/非表示をタイマー処理と乱数で切り替える事により、
アニメのようなものを作ってみました。
【流れ】
1.ボタンを押したら、タイマー処理を起動/停止。
2.タイマー処理でボタンの前景色、背景色を変更。色指定は乱数(0-255)を使い、
RGBの各色を指定。
3.タイマー処理でボタンの表示/非表示を変更。乱数を使って表示/非表示を
選択。チェックボックスがチェックされている時は「表示」に固定。
【スクリプト】
Private Sub ボタン_タイマー_Click()
'【機能】タイマー処理の起動、停止
If Me.TimerInterval <> 0 Then
Me.TimerInterval = 0 ' 停止
Me!コンボ_NewPW桁数.SetFocus ' NewPW桁数にフォーカス
Me!ボタン_タイマー.BackColor = RGB(209, 234, 240) ' 背景色=#D1EAF0
Me!ボタン_タイマー.ForeColor = RGB(64, 64, 64) ' 前景色=#404040
Me!ボタン_タイマー.Visible = True ' ボタンを表示
Me!ボタン_タイマー.SetFocus ' ボタン_タイマーにフォーカス
Else
Me.TimerInterval = 1000 ' 起動
End If
End Sub
Private Sub Form_Timer()
'【フォームのタイマー処理】
'【変数】
Dim myBL1 As Boolean
' Dim i As Variant ' 変数
'【実行コード】
' i = Me!ボタン_タイマー.BackColor
' Debug.Print "Me!ボタン_タイマー.BackColor=" & Me!ボタン_タイマー.BackColor
Me!コンボ_NewPW桁数.SetFocus ' NewPW桁数にフォーカス
Me!ボタン_タイマー.BackColor = RGB(UFRnd1(0, 255), UFRnd1(0, 255), UFRnd1(0, 255)) ' 背景色=ランダム
Me!ボタン_タイマー.ForeColor = RGB(UFRnd1(0, 255), UFRnd1(0, 255), UFRnd1(0, 255)) ' 前景色=ランダム
If Me!チェック191_常時表示.Value = True Then
Me!ボタン_タイマー.Visible = True ' 常時表示
Else
' ランダム表示
myBL1 = UFRnd1(0, 1) - 1
Me!ボタン_タイマー.Visible = myBL1 ' ボタンを表示(-1)、非表示(0)
If myBL1 Then
Me!ボタン_タイマー.SetFocus ' ボタン_タイマーにフォーカス
End If
End If
'Me!ボタン_タイマー.BackColor = RGB(209, 234, 240) ' 背景色=#D1EAF0
End Sub
Function UFRnd1(myMin1 As Long, myMax1 As Long) As Long
'【機能】myMin1 - myMax1の間の乱数を発生
'【引数】
' myMin1 : 最小値
' myMax1 : 最大値
'【変数】
'【実行コード】
UFRnd1 = Int(Rnd * (myMax1 - myMin1 + 1) + myMin1)
End Function
Private Sub Form_Load()
'【イベント】フォーム読み込み時
Me!チェック191_常時表示.Value = True ' タイマーボタン:常時表示
End Sub
アニメのようなものを作ってみました。
【流れ】
1.ボタンを押したら、タイマー処理を起動/停止。
2.タイマー処理でボタンの前景色、背景色を変更。色指定は乱数(0-255)を使い、
RGBの各色を指定。
3.タイマー処理でボタンの表示/非表示を変更。乱数を使って表示/非表示を
選択。チェックボックスがチェックされている時は「表示」に固定。
【スクリプト】
Private Sub ボタン_タイマー_Click()
'【機能】タイマー処理の起動、停止
If Me.TimerInterval <> 0 Then
Me.TimerInterval = 0 ' 停止
Me!コンボ_NewPW桁数.SetFocus ' NewPW桁数にフォーカス
Me!ボタン_タイマー.BackColor = RGB(209, 234, 240) ' 背景色=#D1EAF0
Me!ボタン_タイマー.ForeColor = RGB(64, 64, 64) ' 前景色=#404040
Me!ボタン_タイマー.Visible = True ' ボタンを表示
Me!ボタン_タイマー.SetFocus ' ボタン_タイマーにフォーカス
Else
Me.TimerInterval = 1000 ' 起動
End If
End Sub
Private Sub Form_Timer()
'【フォームのタイマー処理】
'【変数】
Dim myBL1 As Boolean
' Dim i As Variant ' 変数
'【実行コード】
' i = Me!ボタン_タイマー.BackColor
' Debug.Print "Me!ボタン_タイマー.BackColor=" & Me!ボタン_タイマー.BackColor
Me!コンボ_NewPW桁数.SetFocus ' NewPW桁数にフォーカス
Me!ボタン_タイマー.BackColor = RGB(UFRnd1(0, 255), UFRnd1(0, 255), UFRnd1(0, 255)) ' 背景色=ランダム
Me!ボタン_タイマー.ForeColor = RGB(UFRnd1(0, 255), UFRnd1(0, 255), UFRnd1(0, 255)) ' 前景色=ランダム
If Me!チェック191_常時表示.Value = True Then
Me!ボタン_タイマー.Visible = True ' 常時表示
Else
' ランダム表示
myBL1 = UFRnd1(0, 1) - 1
Me!ボタン_タイマー.Visible = myBL1 ' ボタンを表示(-1)、非表示(0)
If myBL1 Then
Me!ボタン_タイマー.SetFocus ' ボタン_タイマーにフォーカス
End If
End If
'Me!ボタン_タイマー.BackColor = RGB(209, 234, 240) ' 背景色=#D1EAF0
End Sub
Function UFRnd1(myMin1 As Long, myMax1 As Long) As Long
'【機能】myMin1 - myMax1の間の乱数を発生
'【引数】
' myMin1 : 最小値
' myMax1 : 最大値
'【変数】
'【実行コード】
UFRnd1 = Int(Rnd * (myMax1 - myMin1 + 1) + myMin1)
End Function
Private Sub Form_Load()
'【イベント】フォーム読み込み時
Me!チェック191_常時表示.Value = True ' タイマーボタン:常時表示
End Sub
2020-12-28 21:47
ヤバイぜ!(10)
コメント(1)
ヤバイぜ! ありがとうございます(^_0)ノ
by cheese999 (2020-12-29 18:34)