0
3つのExcelインスタンスを作成し、それぞれを実行するためのワークブックを作成しました。私はそれを複数のコアを使ってパフォーマンスを向上させるために作ります。私は別の範囲で苦労せずにそれを実行しようとしています。コードVBAで複数の関数を同時に実行する方法
Sub Initiate()
Dim spath2 As String
Dim spath3 As String
Dim xlApp As Application
Dim xlFFQ1 As Application
Dim xlFFQ2 As Application
Dim xlFFQ3 As Application
Application.ScreenUpdating = False
Application.DisplayAlerts = False
spath1 = ThisWorkbook.Path & "\program1.xlsm"
spath2 = ThisWorkbook.Path & "\program2.xlsm"
spath3 = ThisWorkbook.Path & "\program3.xlsm"
Set xlApp1 = CreateObject("Excel.Application")
Set xlApp2 = CreateObject("Excel.Application")
Set xlApp3 = CreateObject("Excel.Application")
xlApp1.Workbooks.Open (spath1)
xlApp2.Workbooks.Open (spath2)
xlApp3.Workbooks.Open (spath3)
'those lines are independents and want to run each one without waiting the end of another. xlApp1/xlApp2/xlApp3 are different excel instances
xlApp1.Run "doMyStuffs"
xlApp2.Run "doMyStuffs"
xlApp3.Run "doMyStuffs"
の
例何かが非常に明確ではない場合、私はそれがより良い書かせることばかり言います。
マルチスレッドが必要ですが、残念ながらVBAでは不可能です。 –
[VBAのマルチスレッド]の可能な複製(http://stackoverflow.com/questions/5721564/multi-threading-in-vba) –
各ワークブックは別のインスタンスで開きます。 "RUN"それぞれを手動モードを使用せずに(各ブックを開いてマクロを実行する)。 – Rajivdmo