目で見るスピードアップ
ここに載せてあるソースコードは、参考のために載せてあります
サンプルコードは、一番下にLZHとしてあります
Option Explicit 'Withを使用するか、しないかの違いでスピードが変わることを示すためのスピードアップです 'Windowsの起動してからの時間を出力するAPI Private Declare Function GetTickCount Lib "kernel32" () As Long 'Withを使用してない Private Sub Command1_Click() Dim j0, j1, j2, x, cnt As Long, i As Integer MousePointer = 13 'マウスカーソルを砂時計にする Command1.Enabled = False 'Command1のイベントを無効にする j0 = GetTickCount '開始時間を代入 Do 'DoEvents j1 = (GetTickCount - j0) '今の時間から開始時間を引いた時間幅 If Not(j1 = j2) Then j2 = j1 cnt = cnt + 1 'ちょっとした処理 For i = 0 To 100 x = Command1.Top x = Command1.Left x = Command1.Value x = Command1.Caption Next End If Loop Until j1 > 5000 Label2.Caption = cnt '結果を表示 MousePointer = 0 'マウスカーソルを元に戻す Command1.Enabled = True 'Command1のイベントを有効にする End Sub 'Withを使用している Private Sub Command2_Click() Dim j0, j1, j2, x, cnt As Long, i As Integer MousePointer = 13 'マウスカーソルを砂時計にする Command2.Enabled = False 'Command2のイベントを無効にする j0 = GetTickCount '開始時間を代入 With Command2 Do 'DoEvents j1 = (GetTickCount - j0) '今の時間から開始時間を引いた時間幅 If j1 <> j2 Then j2 = j1 cnt = cnt + 1 'ちょっとした処理 For i = 0 To 100 x = .Top x = .Left x = .Value x = .Caption Next End If Loop Until j1 > 5000 End With Label3.Caption = cnt '結果を表示 MousePointer = 0 'マウスカーソルを元に戻す Command2.Enabled = True 'Command2のイベントを有効にする End Sub |