I am beginner! - WinAPIを初めて使う方たちへ(ページ3)

簡単なAPIから慣れる

ページ2でVBでのAPIの宣言方法がわかったところで、これからいろいろと
このサイト内にあるAPI関数を使っていきましょう。

さて、とりあえず簡単なAPIの関数から使っていきましょう。
今回はSleep()関数というのを使う事にします。
この関数は呼び出したプログラムの実行を指定した時間だけストップしてくれる関数です。
昔のBasicだと「Wait命令」なんてのが、同じ働きをします。
ということで早速使ってみる事にします。

フォーム上は好きなようにデザインしてください。
私はこんな感じにしました。(色数を落としてます)

'カレントスレッドの実行を指定の時間だけ中断する
Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMillsecounds As Long)

Private Sub Command1_Click() Call Sleep(Val(Me.Text1.Text) * 1000) MsgBox Me.Text1.Text & "秒経過しました" End Sub
Private Sub Form_Load() Me.Text1.Text = 1 End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) KeyAscii = -(KeyAscii >= &H30 And KeyAscii <= &H39) * KeyAscii End Sub

プログラムはこれだけです。
Sleep()関数は「Private Sub Command1_Click()」で使われています。
API関数を呼び出すときにはCall命令で呼び出します。
Sleep()関数の引数にはプログラムの実行を停止する時間をミリ秒単位で指定します。
ミリ秒は1秒の1/1000なので、*1000をしてあります。
Val関数はご存知の通り、VBの標準的な関数で、文字列の数字を数字に変換してくれます。

もしこの関数を知らないあなたは今まできっとこんな事をしていたでしょう。
For A = 1 To 10000
Next
もうこれからはそんなことはしなくて済みます。これがAPIの便利さです。

ダウンロードはこちらから。

ダウンロード

おまけ

ちなみにお気づきかも知れませが、「Text1_KeyPress」というイベントで数字だけしか入力できないように
してあります。この使い方の説明は数字しか入力できないようにするに書いておきました。
たぶん、古典的なIf文を使わないフィルタリングですが、意外に知らない方も多いと思うので
興味があったら見てください。