SSブログ

アクセス小僧:乱数を使ったアニメの様なもの(改2) [コンピューター]

アクセスのフォームでボタンの色や表示/非表示をタイマー処理と乱数で切り替える
事により、アニメの様なものを作りました。

前回、ボタンに表示される文字(1文字)を乱数で切り替えるようにしました。
一歩進めて、表示できる文字の種類を増やして、文字数も乱数で切り替えるように
してみました。

【前回以前の記事】
https://cheese999.blog.ss-blog.jp/2021-01-04
https://cheese999.blog.ss-blog.jp/2020-12-28

【流れ】
1.ボタンを押したら、タイマー処理を起動/停止。
2.タイマー処理でボタンの前景色、背景色を変更。色指定は乱数(0-255)を使い、
RGBの各色を指定。
3.タイマー処理でボタンに表示するテキストを変更。乱数を使用して文字数、
文字コードをランダムに指定。(★★今回変更★★)
4.タイマー処理でボタンの表示/非表示を変更。乱数を使って表示/非表示を
選択。チェックボックスがチェックされている時は「表示」に固定。

【スクリプト】
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!ボタン_タイマー.Caption = "タイマー"
    Me!ボタン_タイマー.ControlTipText = "タイマー処理の起動"
    Me!ボタン_タイマー.Visible = True ' ボタンを表示
    Me!ボタン_タイマー.SetFocus ' ボタン_タイマーにフォーカス
  Else
    Me.TimerInterval = 1000 ' 起動
    Me!ボタン_タイマー.ControlTipText = "タイマー処理の停止"
  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)) ' 前景色=ランダム
  Me!ボタン_タイマー.Caption = UFRndStr1(UFRnd1(0, 5)) ' 標題=ランダム、文字数=0~5
  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

Private Sub Form_Load()
  '【イベント】フォーム読み込み時
  Me!チェック191_常時表示.Value = True ' タイマーボタン:常時表示
  Me!チェック191_常時表示.ControlTipText = "タイマーボタン常時表示:ON/OFF"
  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!ボタン_タイマー.Caption = "タイマー"
  Me!ボタン_タイマー.ControlTipText = "タイマー処理の起動"
  Me!ボタン_タイマー.SetFocus ' ボタン_タイマーにフォーカス
  ' Debug.Print "ぁ=" & Asc("ぁ")
  ' Debug.Print Chr(Asc("ぁ") + 5) & "=" & Asc("ぁ") + 5
  ' Debug.Print "Me!ボタン_タイマー.name=" & Me!ボタン_タイマー.Name
  ' Debug.Print "Me!ボタン_タイマー.Caption=" & Me!ボタン_タイマー.Caption
  Debug.Print "--- Form_Load(End) ---"
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

Function UFRndChr1() As String
'【機能】ランダムに1文字を返す
'【引数】
' 無し
'【変数】
'【実行コード】
  Select Case UFRnd1(0, 10)
    Case 0
      UFRndChr1 = Chr(UFRnd1(0, (Asc("9") - Asc("0"))) + Asc("0")) ' 標題=ランダム(9 => 0)
    Case 1
      UFRndChr1 = Chr(UFRnd1(0, (Asc("Z") - Asc("A"))) + Asc("A")) ' 標題=ランダム(A,8260,-32160 => Z,8279,-32135)
    Case 2
      UFRndChr1 = Chr(UFRnd1(0, (Asc("z") - Asc("a"))) + Asc("a")) ' 標題=ランダム(z => a)
    Case 3
      UFRndChr1 = Chr(UFRnd1(0, (Asc("ん") - Asc("ぁ"))) + Asc("ぁ")) ' 標題=ランダム(ぁ,829F,-32097 => ん,82F1,-32015)
      'Debug.Print "a=" & Asc("ん") - Asc("ぁ")
    Case 4
      UFRndChr1 = Chr(UFRnd1(0, (Asc("ミ") - Asc("ァ"))) + Asc("ァ")) ' 標題=ランダム(ァ => ミ)
    Case 5
      UFRndChr1 = Chr(UFRnd1(0, (Asc("ヶ") - Asc("ム"))) + Asc("ム")) ' 標題=ランダム(ム => ヶ)
    Case 6
      UFRndChr1 = Chr(UFRnd1(0, (Asc("Ω") - Asc("Α"))) + Asc("Α")) ' 標題=ランダム(Α => Ω)
    Case 7
      UFRndChr1 = Chr(UFRnd1(0, (Asc("ω") - Asc("α"))) + Asc("α")) ' 標題=ランダム(α => ω)
    Case 8
      UFRndChr1 = Chr(UFRnd1(0, (Asc("Я") - Asc("А"))) + Asc("А")) ' 標題=ランダム(А => Я)
    Case 9
      UFRndChr1 = Chr(UFRnd1(0, (Asc("я") - Asc("а"))) + Asc("а")) ' 標題=ランダム(а => я)
    Case 10
      UFRndChr1 = Chr(UFRnd1(0, (Asc("蔭") - Asc("亜"))) + Asc("亜")) ' 標題=ランダム(亜 => 蔭)
    End Select
End Function

Function UFRndStr1(Len1 As Long) As String
'【機能】指定された文字数のランダム文字列を返す
'【引数】
' Len1:文字数
'【変数】
Dim myString1 As String
Dim i As Long
'【実行コード】
  If Len1 = 0 Then
    UFRndStr1 = ""
  Else
    myString1 = ""
    For i = 1 To Len1 Step 1
      myString1 = myString1 & UFRndChr1()
    Next i
    UFRndStr1 = myString1
  End If
End Function
ヤバイぜ!(10)  コメント(1) 
共通テーマ:パソコン・インターネット

ヤバイぜ! 10

コメント 1

cheese999

ヤバイぜ! ありがとうございます(^_0)ノ
by cheese999 (2021-01-17 13:25) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字(英大文字の「オー」、英小文字の「ユー」、アラビア数字の「ハチ」、アラビア数字の「イチ」、アラビア数字の「ニ」)を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。