• ベストアンサー

メモリが不足しています(VBA)

エクセルのVBAで 「メモリが不足しています」と表記されました。 どのようにしたら、メモリの容量を上げることができますか? VBAではメモリを上げることが出来ない仕様なのでしょうか? ご存知の方がいましたら教えていただけないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

すでに不足してきているプログラムなので、 これ以上を求めるには物理メモリ容量(の装着)を変えるしかないです。 普段はそんなことまではしないので 無駄な使用を少なくして限られたメモリ内での実行を目指します。 例えば、 DIM SH(256,65536,256) 65536行×256列×256シート分、 こんなのあっても1度に使用する部分はそんなにないので無駄です。 1行単位の確保があればいい、なら DIM SH(256) 256列分 です。 無駄に準備している変数はないか、確認。 >どのようにしたら、メモリの容量を上げることができますか? >VBAではメモリを上げることが出来ない仕様なのでしょうか? 利用メモリを制御できるかは、わかりません。 もっとコアな部分を触るのかもしれません。 下手するとほかのアプリが動かなくなる危険があるので、 これは策として考えない方がいいです。 普通そんなプログラムは目指しません。 少ないメモリで動くよう目指す、効率化を図るのが良いです。

saterain20
質問者

お礼

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

その他の回答 (2)

回答No.2

はじめまして、通るすがると申します。 私も、同じ状況になったことがありそのとき調べた限りではPCのメモリ不足でした。 VBA自体の言語は、オブジェクト毎にメモリの解放、確保ができるほとちゃんとした言語 ではないため、巨大なソースを作成しようとするとメモリ不足になりがちです。 所詮VBAは、EXCELのおまけみたいなものであり、一システム的なものを作るには、向 かないと思います。(かなり小規模なものはできるとは思いますが。。) ただ、コーディングの方法についても無駄にメモリを消費する場合もあります。 たとえば、内部サブルーチンコールにおいて、CALL命令を使用せず直接サブルーチン名 を記述すると多くのメモリを消費しているようです。 いずれにしても、VBAで作るのは、ツール的位置ずけで使用するレベルと限定して開発 することをお勧めします。

saterain20
質問者

お礼

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

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

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

saterain20
質問者

お礼

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

関連するQ&A

  • VBAで「メモリが不足しています」

    VBAツールを作成しました。それぞれ3000行位のデータの1列を取得して、テキストファイルに書き出すツールです。 それが5シート分あり、ボタンを押して実行させます。 標準モジュールに関数が6個 各シートモジュールは関数7個×4シート分 極端に多いモジュールではないと思います。 「メモリが不足しています」と表示されるようになり、 これ以上記入もできない状態です…。 エクセル自体は18MBあります。 PCのCドライブには8GB空きがあります。 PCを変えてエクセルを開いてみても、開いた途端に「メモリが不足しています」と出ます。 どの関数の実行ボタンを押しても、実行はされず、メッセージが出るだけです…。 助けてください!!!

  • メモリ不足?

    いつもお世話になっております。 エクセル2007で作成したデータを2003形式で保存し、別のパソコンで開き作業しようとすると「メモリ不足です。完全に表示できません」とのメッセージが表示されます。なぜでしょうか? 別のパソコンのスペックはメモリが2GB、エクセル2003、ウインドウズ7でデータ容量は50KB程度です。 特に重いデータ等は起動させてませんし、ハードには十分な空き容量が確保されてます。 単純に実装メモリが不足しているためでしょうか? 詳しい方がおられましたらよろしくお願いいたします。

  • 【Excel】【VBA】実行時エラー メモリ不足

    【Excel】【VBA】実行時エラー -'-2147467259「メモリ不足です」 win8.1 エクセル2010 メモリ8Gのスペックで VBAコードを実行しているのですが たまに 実行時エラー -'-2147467259「メモリ不足です」 となり、マクロが中断されてしまいます。 今回、実行時エラー -'-2147467259「メモリ不足です」と出たコードは rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic です。 前後のコードは省略していますが 普段は問題なく通ります。 strSQLも、中身をクエリのSQLビューに張り付けて、クエリで見てみたけど 問題なく表示されます。 なぜメモリ不足ですとなるのでしょうか? スペックが低いのですか?

  • メモリ不足!!

    私は、現在W52CAを使用している者です。 以前までは、見れていた携帯のサイトが今日見ようとしたらいきなり『メモリ不足』で見れなくなりました。 携帯を変更したりしたら、それぞれの携帯によってメモリの容量が違うのは分かるのですが、同じ携帯で見れていたものが見れなくなるのはなぜでしょう?この解決方法をご存知の方がいましたら回答・アドバイス等をお願いします。

    • ベストアンサー
    • au
  • メモリ不足

    パソコンはVistaで、システムは32ビット、メモリ(RAM)は2・00GBですが、インターネットを閲覧していると、「メモリ不足です、直ちにパソコンを再起動してください」というようなメッセージが頻繁に出るようにななりました。この問題は、メモリを増設すれば解決するのでしょうか?メモリ不足メッセージがよく出るようになるまでは、OS(C)の空き容量が少なくなっているので、不要なアプリ等は整理してくださいといメッセージがよく出ていました。調べたところ、今はOS(C)の空き容量は1.34GB/72.4GBですが、この値はずいぶんと変動するようです。空き容量を増やせといっても、どれが不要なアプリなのか判断するのは難しいのですが、どうしたらよいでしょうか?

  • メモリ不足にならないためには

    Excel2000のVBAで起きる事なのですが、夜空をイメージし 無地の黒い背景に200個ほどの”☆”をランダムに大きさや色を変え、セル(番地も指定した範囲でランダム)に書き込み、一旦消して、また次の書き込みをするという、ループ満載の初歩的なプログラムを書きました。2,3回繰り返すとメモリ不足のメッセージが出て動かなくなります。1:このようなメモリ不足は何故おきるのでしょうか?2:これをさけるためメモリの消費量というをどのように見積もることができるのでしょうか?

  • 「メモリ不足です。完全に表示できません。」

    新規にエクセルのアプリケーションを立ち上げたら 「メモリ不足です。完全に表示できません。」と表示されました。 これは全てのエクセルを閉じたほうが良いのでしょうか? またタスクマネージャーをみるとこんな感じなのですが これはエクセルがメモリを使い過ぎなのでしょうか?

  • メモリ不足と表示されてサイトを見ることができません。

    私のことではないのですが、私は携帯サイトを持っていて、そこにいらした方からのことで質問させていただきます。 その方は携帯を新しくしたら、今まで私のサイトを見れていたのが「メモリ不足」で見れなくなってしまったということです。 メモリ不足というのは、私のサイトのページが重たくて見れないのでしょうか?それとも携帯の、なんというか容量がいっぱいになってしまって、見れないのでしょうか?それともそれとは別な理由があるのでしょうか? その方の携帯はauです。 ご存知の方がいらしたらどうか宜しくお願いします。

    • ベストアンサー
    • au
  • エクセルのメモリ不足

    こんにちは。エクセル97を使っています。 エクセルを使って作業をしていたら、「メモリ不足です」という表示が出てしまいました。データだけを切り取って、新しく開いたエクセルに貼り付けたりしてみましたが、最初はいいのですが、打ち込み始めるとまたその表示が出てしまいます。 それ以降、今まで普通に見れていたデータにも「メモリ不足です」と出て見れなくなりました。 他のパソコンで同じデータを開いたら何事も無く使えます。 何か解決方法が分かる方がいましたら、よろしくお願いします!

  • メモリ不足??

    最近、「メモリ不足でファイルを開くことができません」と表示されることが多くなってきたのですが、理由が全く分かりません。 メモリの掃除ソフトをダウンロードしてメモリ使用率は50%と表示されているのに表示されるのです;; どなたか理由と解決法を教えてくださいm(__)m (仕様OSはWindowsMeです)