[[20100107155944]] 『メモリー不足表示出現!困った』(あらくま) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『メモリー不足表示出現!困った』(あらくま)

 皆さんのお知恵とお力をお借りしながらエクセルでプログラムを組んできました。
 おかげさまで、おおよその形が出来上がり喜んでいたところ、職場のパソコンで
 作業を進めようとしたところ、
 「メモリー不足です。完全に表示できません。」
 と画面表示が出て動作停止となってしまいました。

 K.Tsunoda氏の(AddinBox)[ktHolidayName]というユーザー定義マクロ関数を利用し
 て、祝日判定を行っています。このほか、小生が組んだマクロを3種類、元シート
 データを活用する形で13シートを現在使用しています。今後、6シートほど増や
 さなければなりません。

 メモリーを消費する要因は、大きなマクロ?使用するシート数????
 いったい何が一番消費するのでしょうか。
 これを少しでも回避する(メモリー消費を節約する)方法は?

 本質問ボードにはふさわしくはないのかもしれませんが、
 どなたかご教示願えませんか。

 処理の全体が見えないのでなんとも言えませんが
 シートの数式が重いとか
 オブジェクトが沢山貼り付けられているとか
 そもそもデータがとてつもなく多いとか

 VBA内でしたら
 変数に格納しているデータが大きいとか
 無駄な処理が多いとか

 色々考えられるので、どこの段階でエラーになるのかを
 ステップ実行でもしながらやってみれば
 処理開始からエラーになるまでの間に原因があると思うので
 1つづつ確かめてみてはどうでしょうか?
 (momo)

 momoさん、ご助言ありがとうございます。

 >シートの数式が重いとか
 >オブジェクトが沢山貼り付けられているとか
 >そもそもデータがとてつもなく多いとか
 データが多いことはないと思います。指定する年度の年間暦(休日・休業・振替休日・
 振替勤務など)を作成し、そのデータを行事・業務を追加入力、各月ごとの票を作成し
 たり、その他の形式の票を作成することを目標にしています。
 >シートの数式が重いとか
 >オブジェクトが沢山貼り付けられているとか
 このことが具体的にどういうことをいううのかが、恥ずかしいのですが、よく理解でき
 ないレベルです。
 共同作業者(私と同程度の力量)と考えた結論、
 >VBA内でしたら
 >変数に格納しているデータが大きいとか
 >無駄な処理が多いとか
 まずは、これかもと・・・
 以下のマクロを実行しようとすると・・・
 さかんに、処理画面がちらちら変わり・・・なので、どこかおかしいところ、無駄、
 そんなところがあって、症状が出るのではないかと考えたのですが、どうでしょうか。

 Sub 祝休日月シート転記()
 'シート(4月)へ祝日・休業名等転記
     Range("AJ7:AJ36").Copy
     Sheets("4月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(5月)へ祝日・休業名等転記
     Range("AJ37:AJ67").Copy
     Sheets("5月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(6月)へ祝日・休業名等転記
     Range("AJ68:AJ97").Copy
     Sheets("6月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(7月)へ祝日・休業名等転記
     Range("AJ98:AJ128").Copy
     Sheets("7月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(8月)へ祝日・休業名等転記
     Range("AJ129:AJ159").Copy
     Sheets("8月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(9月)へ祝日・休業名等転記
     Range("AJ160:AJ189").Copy
     Sheets("9月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(10月)へ祝日・休業名等転記
     Range("AJ190:AJ220").Copy
     Sheets("10月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(11月)へ祝日・休業名等転記
     Range("AJ221:AJ250").Copy
     Sheets("11月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(12月)へ祝日・休業名等転記
     Range("AJ251:AJ281").Copy
     Sheets("12月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(1月)へ祝日・休業名等転記
     Range("AJ282:AJ312").Copy
     Sheets("1月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(2月)へ祝日・休業名等転記
     If Range("$AB$6").Value = 0 Then
            Range("AJ313:AJ340").Copy              '閏年でない場合
       Else
            Range("AJ313:AJ341").Copy              '閏年の場合
     End If

       Sheets("2月").Range("C3").PasteSpecial Paste:=xlValues

 'シート(3月)へ祝日・休業名等転記
     If Range("$AB$6").Value = 0 Then
            Range("AJ341:AJ371").Copy              '閏年でない場合
       Else
            Range("AJ342:AJ372").Copy              '閏年の場合
     End If

       Sheets("3月").Range("C3").PasteSpecial Paste:=xlValues

    Application.CutCopyMode = False

 End Sub
                                                                (あらくま)


 ↓へ続く?
[[20100108084000]] 『連続転記の効率化』(あらくま)

 (HANA)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.