C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: VBAにおけるマルチスレッド処理


(過去ログ 80 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■47345 / inTopicNo.1)  VBAにおけるマルチスレッド処理
  
□投稿者/ 伊藤 (1回)-(2010/02/26(Fri) 16:06:35)

分類:[Microsoft Office 全般] 

Excel2007で趣味でゲームなどのプログラミングをしているVBAの超初心者です。

この度、反復計算を延々と繰り返さなければいけないコードを書く機会があったのですが、シングルスレッドでは遅すぎます。

せっかくのマルチコアを生かしたいのですが、実装方法がヘルプを見ても理解できませんでした。

どなたかご教授ください、よろしくおねがいします。
引用返信 編集キー/
■47348 / inTopicNo.2)  Re[1]: VBAにおけるマルチスレッド処理
□投稿者/ みきぬ (810回)-(2010/02/26(Fri) 16:31:25)
すっげー気になったので調べてみた。

自分が出した結論:
・VBA 自体は、マルチスレッドプログラミングが可能
・Excel 2007 の計算は、マルチスレッドに対応
・Excel に組み込まれた VBA では、マルチスレッド処理は使えない

ただし、いまいち自信はない。


参考:
http://www.microsoft.com/japan/msdn/vba/prodinfo/qa.htm

> VBA マルチスレッド プロジェクトは Visual Basic または Visual C++ をどんな点で上回っていますか ?
> VBA マルチスレッド プロジェクトはホスト アプリケーションとの緊密な統合を提供します。
> これは、開発者がアプリケーション イベントに応じ、ホスト アプリケーションと相互作用する
> VBA コードを書くことを容易にします。

http://msdn.microsoft.com/ja-jp/library/aa730921.aspx#aa730921_topic9

> Excel 2007 では、マルチ プロセッサ (マルチ コア) で計算の分散ができるようになりました。
> Excel 2007 はブックを読み込むと、何個のプロセッサが使用できるかをオペレーティング システムから
> 判断し、プロセッサごとに個別の計算スレッドを作成します。これらのスレッドは並列実行が可能です。

> 次のように、Excel の一部の機能ではマルチ スレッド計算は使用されません。
>
> ・ユーザー定義関数 (ただし、XLL 関数はマルチ スレッド対応にすることができます)
引用返信 編集キー/
■47349 / inTopicNo.3)  Re[1]: VBAにおけるマルチスレッド処理
□投稿者/ はつね (1198回)-(2010/02/26(Fri) 16:31:55)
No47345 (伊藤 さん) に返信
> Excel2007で趣味でゲームなどのプログラミングをしているVBAの超初心者です。
> この度、反復計算を延々と繰り返さなければいけないコードを書く機会があったのですが、シングルスレッドでは遅すぎます。
> せっかくのマルチコアを生かしたいのですが、実装方法がヘルプを見ても理解できませんでした。

Excel-VBAからじゃむずかしいじゃないでしょうか。

引用返信 編集キー/
■47352 / inTopicNo.4)  Re[2]: VBAにおけるマルチスレッド処理
□投稿者/ 伊藤 (2回)-(2010/02/26(Fri) 21:03:04)
お二方、返信ありがとうございます。

無理とのこと、残念ですが了解しました。

コードそのものの見直しで対応するしかなさそうなので頑張ってみたいと思います。

ありがとうございました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -