VBAでマルチタスク処理を行いたいのですね。

広告

結論から言えば出来ないようです。

おそらくここで言っているマルチタスクとは、マルチスレッドの事を言っているのだと思います。

マルチスレッドを実現させるためには、プログラムが並列して動くような作りにしなくてはなりません。

VBAでは仕様上難しそうです。

実行用に機械語を作る事ができず、中間コードを作るだけなので並列化は厳しいようです。

マルチタスクなら、Excelのブックをいくつか立ち上げて重いマクロを実行しましょう。それなら可能と思いますが、現実はそのような作業は少ないでしょうし。

最近のCPUは、マルチコアのものが大半ですが、なかなかそれを生かし切る事ができる用途は限られています。

でもOSやアプリケーションソフトの中では、それを生かしている部分もあると思うので無駄ではないでしょう。

Windows10が比較的軽いのも、マルチコアの恩恵を受けていると思われます。

VBAでマルチコアを生かせないのは残念ですが、そこまで期待しても仕方がないでしょう。

広告