アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのVBAで
「メモリが不足しています」と表記されました。

どのようにしたら、メモリの容量を上げることができますか?
VBAではメモリを上げることが出来ない仕様なのでしょうか?

ご存知の方がいましたら教えていただけないでしょうか?
よろしくお願いします。

A 回答 (3件)

すでに不足してきているプログラムなので、


これ以上を求めるには物理メモリ容量(の装着)を変えるしかないです。

普段はそんなことまではしないので
無駄な使用を少なくして限られたメモリ内での実行を目指します。

例えば、
DIM SH(256,65536,256)
65536行×256列×256シート分、
こんなのあっても1度に使用する部分はそんなにないので無駄です。
1行単位の確保があればいい、なら
DIM SH(256)
256列分
です。
無駄に準備している変数はないか、確認。

>どのようにしたら、メモリの容量を上げることができますか?
>VBAではメモリを上げることが出来ない仕様なのでしょうか?

利用メモリを制御できるかは、わかりません。
もっとコアな部分を触るのかもしれません。
下手するとほかのアプリが動かなくなる危険があるので、
これは策として考えない方がいいです。
普通そんなプログラムは目指しません。
少ないメモリで動くよう目指す、効率化を図るのが良いです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/04/05 00:24

はじめまして、通るすがると申します。


私も、同じ状況になったことがありそのとき調べた限りではPCのメモリ不足でした。
VBA自体の言語は、オブジェクト毎にメモリの解放、確保ができるほとちゃんとした言語
ではないため、巨大なソースを作成しようとするとメモリ不足になりがちです。
所詮VBAは、EXCELのおまけみたいなものであり、一システム的なものを作るには、向
かないと思います。(かなり小規模なものはできるとは思いますが。。)

ただ、コーディングの方法についても無駄にメモリを消費する場合もあります。
たとえば、内部サブルーチンコールにおいて、CALL命令を使用せず直接サブルーチン名
を記述すると多くのメモリを消費しているようです。

いずれにしても、VBAで作るのは、ツール的位置ずけで使用するレベルと限定して開発
することをお勧めします。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/04/05 00:25

どんなコードを実行しているのか。

複雑で長くて質問には掲示できないのか。
http://officetanaka.net/excel/vba/error/executio …
の「メモリが不足しています」の解説を読んで、思い当たる節は無いか。
質問ぶりから、ス質問者は、そんな大きな(多数行)のコードを作れるレベルに思えないが。
多数のデータを配列に溜め込んだりしてますか。
こういうのは素人的な思い付きのロジックでコード作成に取りか語りすると怖い。
対象のブック数やシート数はどれくらい?
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2011/04/05 00:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています