目で見るスピードアップ

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下に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



<戻る

Sample17.lzh


http://www.vector.co.jp/authors/VA015521/