VBAでATMのようなランダムキーを作ってみた



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

さて、大半の方はATMでお金をおろすかと思いますが、その時に【暗証番号のテンキーの配置がランダムに配置されている】事ってありませんか?

これははたから見た時に配置が分からないようにするという、セキュリティーの向上として導入されたものです。

これを【VBAのパスワード入力画面で再現してみよう】と思ったので作成してみましたのでご紹介します(笑)

VBAでATMのようなランダムキーを作成する

というわけで、今回作成するのは下記の画像のような「ランダムキー入力フォーム」です。

使用したコントロール

  • テキストボックスコントロール
  • コマンドボタンコントロール

のみです。単純な構成ですね(笑)

今回は前に作成した【クリックナンバー】のように【0~9を重複しないように数値をランダムに生成】する処理が必要となります。

重複しないように数値をランダムに生成する方法については下記の記事でも紹介しています。
VBA ランダムの数値を条件を指定して出してみよう!
重複するかどうかは、配列を見て【TrueかFalse】で判断します。

ランダムキーのサンプルコード

ランダムキーのサンプルコードは以下の通りです。

構成自体は簡単なものなので、よければお使いください(^.^)

Private Sub UserForm_Initialize()
'入力した数値を隠す設定
TextBox1.PasswordChar = "*"

Dim myFlag(0 To 9) As Boolean
Dim RndNo As Long

    Randomize
    
   For i = 1 To 10 'コマンドボタン分の数を指定します。
   
        Do
        RndNo = Int(Rnd * 10) '今回は0~9のランダムな数値を取得するのでこれでOKです。
        Loop Until myFlag(RndNo) = False '配列をみて使われた数値かを判断します。

        Controls("CommandButton" & i).Caption = RndNo
        myFlag(RndNo) = True
    Next i

End Sub
'ここから下はテキストボックスにボタンのCaptionの数値を入力する処理
Private Sub CommandButton1_Click()

TextBox1.Value = TextBox1.Value & CommandButton1.Caption

End Sub
Private Sub CommandButton2_Click()

TextBox1.Value = TextBox1.Value & CommandButton2.Caption

End Sub
Private Sub CommandButton3_Click()

TextBox1.Value = TextBox1.Value & CommandButton3.Caption

End Sub
Private Sub CommandButton4_Click()
TextBox1.Value = TextBox1.Value & CommandButton4.Caption
End Sub

Private Sub CommandButton5_Click()

TextBox1.Value = TextBox1.Value & CommandButton5.Caption

End Sub
Private Sub CommandButton6_Click()

TextBox1.Value = TextBox1.Value & CommandButton6.Caption

End Sub
Private Sub CommandButton7_Click()

TextBox1.Value = TextBox1.Value & CommandButton7.Caption

End Sub
Private Sub CommandButton8_Click()

TextBox1.Value = TextBox1.Value & CommandButton8.Caption

End Sub
Private Sub CommandButton9_Click()

TextBox1.Value = TextBox1.Value & CommandButton9.Caption

End Sub
Private Sub CommandButton10_Click()

TextBox1.Value = TextBox1.Value & CommandButton10.Caption

End Sub

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です