- ベストアンサー
excelマクロの処理を早くしたいのですが!良い知恵ある方お願いします。
excelマクロはここ半年位やっています。 あるマクロ(VBA)を作ったのですが、表が大き過ぎて思うような処理スピードが出ません。ハードは富士通FMV6750CL7Sで750MのCPU速度です。OSはWINDOWS2000を使っています。環境的には問題が無いと思っています。 何か良い知恵がある方いらっしゃれば宜しくお願い致します。 (内容) sheet1・sheet2・sheet3にそれぞれ、3000行の表があります。 三つの表には、受注番号と言う名前の識別項目が、それぞれ1列だけ用意されています。表は受注番号順にソートしています。 マクロはsheet1のある行の受注番号を見て、それと同じ受注番号をsheet2から検索して、該当する行を求めます。次にsheet2の受注番号からsheet3の受注番号を検索して、該当する行を求めます。 (実際にはもうちょっと複雑ですが・・・) 遅い部分を調べて見ますと、3000行の表から該当する行を検索する部分に時間が掛かっている所までは分かっています。 先頭行から順じ見に行って該当する行が見つかったら検索終了するようにはしています。 また、データの存在しない行を見に言ってはいないようです。 (検索部分はこんな感じです) For Each objA In Worksheets(Sheet2).[A:A] If objA.Text Like 受注番号 Then intStr = objA.Row End If If objA.Text > 受注番号 OR objA.Text = ""Then Exit For End If Next Accessなどのデータベースを使えと言われそうですが、excel内で処理すると言う絶対条件がありますので、苦慮しております。 このようなご経験のある方宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
お礼
有り難う御座います。 汎用性があって一番良いかと思っています。 むかしCOBOLの解説本にあったような記憶があります。