- 887 名前:デフォルトの名無しさん [2008/05/25(日) 12:04:28 ]
- シートコピーで悩み事があるので打開策を見つけられたらと思い書きこまさせていただきました。
どなたかお助けいただけたらうれしいです。 VBAにてシートコピーに要する時間が長くて(10分以上)悩んでおります。 Bookの構成といたしまして標準モジュールに数式文字列を評価するものを かいてあります。 Function Eval(ByVal expr As String) Eval = Evaluate(expr) End Function ・Sheet1には、様々な経理データを入れるようにしてあります。 そこに入れた値などを元にセル名を作るように書いてあります。 例)A1に”1”という値でB1に”2”という値が入っていればA2のセル名を”12” とします。 ・Sheet2には予めセルに=eval(12)の様な数式をいれ評価をしております。 これが1枚のシートに2000くらい数式が入っています。 Sheet1、2ともに特定条件のとき複製を何枚か作ります。 このときすごく時間がかかります。 原因は数式が大量にあるものをコピーすること及びセルに名前をふっているのが原因なのは分かりますが コピー以外の動作が非常に快調なので変えたくないということとたぶんeval以外での解決策を模索するのはかなり時間を要しそうなのでコピーを何とかする方を選びたいです。 もちろん再計算の停止などはしてあります。 事前に特定条件を作りだしシートを非表示にしておき特定条件のときに表示させるのも 一つの手ではありますが何百枚もシートを隠しておくとファイルサイズがばかでかくなるという 難点もあって躊躇しています。 例えば=eval(@@@@@@)を多く入れたのが原因であれば標準モジュールを何らかの形でいったん無効にすれば早くなるのかとかスクリプトなどを使って別のブックからシートを移動させるなど・・・・他の代替案はありえないでしょうか? 何分わかりづらい質問で申し訳ありませんが、ご回答いただければ幸いです。 よろしくお願いします。
|

|