2017-10-13 15 views
0

私は2マクロあります。 1つは進行状況バー、もう1つはメインプロセスです。 メインプロセスは内部に4つのサブプロセスで構成されています。進捗バーがExcelにあり、別のマクロを呼び出す

私がしたいことは、プロセスごとに進捗バーが25%増加することです。

私は以下のようにプログレスバーのマクロを作成しました:私の質問には、プログレスバーのマクロが実行されている間、私はメインプロセスマクロを呼び出すことができますどのように、ある

Sub code() ' ' Macro1 Macro ' ' Keyboard Shortcut: Ctrl+p 'Sub code() 

    UserForm1.Show 

End Sub 

Sub progress(pctCompl As Single) 

    UserForm1.Text.Caption = pctCompl * 25 & "% Completed" 

    UserForm1.Bar.Width = pctCompl * 50 
    DoEvents 

End Sub 

Sub code_real() 

    Dim i As Integer, j As Integer, pctCompl As Single 

    Sheet1.Cells.Clear 

    For i = 1 To 4 

     For j = 1 To 10000 

      Cells(i, 1).Value = j 

     Next j 

     pctCompl = i 

     progress pctCompl 

    Next i 

End Sub 

?一度に実行できるマクロは1つだけだと聞きました。

答えて

0

短い答えですが、あなたはしません。あなたはcode_realを実行します。そのルーチンは次にプログレスを呼び出します。 単純な類推では、実行中のスレッドは1つしかないが、コード内で指示されていれば、そのスレッドはあるサブから別のサブに注目を移すことができる。そうプロセスはcode_realを流下それはライン

progress pctCompl 

を満たすまで、それはその後、次の行でreal_compに戻るとき、それは進行中のEnd Subのに達するまで進行する転送(次のI)

場合vbエディタでF8キーを使用すると、進捗状況を1行ずつ確認してスレッドに従うことができます。

関連する問題