フォーム上に配置したボタンの上にカーソルを置こうとするとボタンがランダムに移動する、というフォームをプログラミングします。これを応用することで、ゲームを作ることも出来ます。
| フォームを作る |

フォーム上にツールボックスからドラッグ&ドロップでコマンドボタンを配置する。配置する位置はプログラムを実行してからプログラム中で設定するので、適当でOK。
フォームは 「■入門編 2.フォームの作成」を参照の上、作成する。
| プログラムを入力する |
コマンドボタンを配置したフォームを選択状態にして、ファンクションキーの F7 キーを押し、プログラム入力ウィンドウを表示する。 [表示] - [コード] でもプログラム入力ウィンドウが開く。
そのウィンドウに下記のプログラムを入力する。
Option Explicit Private Sub UserForm_Initialize() '************** フォームの設定 ************************** Me.Width = 200 ' 幅 Me.Height = 200 ' 高さ Me.Caption = "ESCAPE" ' タイトルバーの表示 '************** ** ボタンの設定 ************************** Me.CommandButton1.Width = 20 ' 幅 Me.CommandButton1.Height = 20 ' 高さ Me.CommandButton1.Caption = "" ' 表示 Randomize ' 乱数ジェネレータを初期化 End Sub Private Sub CommandButton1_MouseMove(ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal X As Single, _ ByVal Y As Single) ' Shiftキーを押しながらマウスをボタンに乗せるとフォームが閉じる。 If Shift = 1 Then Unload Me ' コマンドボタンの縦の位置を GatRandNum で得る。 Me.CommandButton1.Top = GatRandNum ' コマンドボタンの横の位置を GatRandNum で得る。 Me.CommandButton1.Left = GatRandNum End Sub Private Function GatRandNum() ' 20〜140の乱数を計算してGatRandNumの戻り値とする。 GatRandNum = Int((200 - 60 - 20 + 1) * Rnd + 20) '【解説】 ' ' Int((上限値 - 下限値 + 1) * Rnd + 下限値) ' ' この式で下限値から上限値の整数の乱数を得ることが出来る。 End Function |
| 実行してみる |
フォームを実行すると、
| サンプル ダウンロード |