HOMEへ
PRODUCTSへ
LEARNING
LINKへ
LOGO
HeadLine
Image画像
ORDER FORMへ
MailTo:
もどる

 ボタンが逃げる…

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

 フォームを作る
コマンドボタンの配置

フォーム上にツールボックスからドラッグ&ドロップでコマンドボタンを配置する。配置する位置はプログラムを実行してからプログラム中で設定するので、適当で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

 実行してみる

フォームを実行すると、

 サンプル ダウンロード

もどる


VBA World
E-Mail:info@vba-world.com