dポイントプレゼントキャンペーン実施中!

ExcelのVisual Basicでマクロを作成していますが、二つのエラーがでて先に進めません。

(1)ユーザーフォームの作成中に『メモリが不足しています』、コードを表示しようとすると『コンパイルエラー・メモリが不足しています』と表示されて、OKを押すと『メンバがみつかりません』と出ます。

(2)保存しようとすると『パス名が無効です』とでて、保存できません。

ちなみに、ネットワークで他のPCと共用して作成しています。

超初心者なので何もわかりません。
解決方法を教えてください。
よろしくお願いします。

A 回答 (3件)

こんにちは。



原因ははっきりしないのですが、
最初に間違いやすい話から書きます。

Excelのメモリの『メモリが不足しています』のメモリは、Excelが使うメモリのことだと思うのです。PCの物理的なメモリとは別のものです。

だいたい、『メモリが不足しています』という時に、タスクマネージャーを使って、その常駐物を見れば、だいたい見当がつきます。

たぶん、何かを開放していなかったりすることが多いのですが、一番は、やはり、CreateObject などを使った、Excel等のオートメーション・オブジェクトではないでしょうか?ExcelからExcelというのは、あまりしないのですが、私などは、VB からコード・テスト中は、時々、開放し忘れますね。

他には、よほどのことがない限りは、エラーはないのですが、Public ステートメントですね。中級レベルまでの方は、Public ステートメントで、オブジェクトの開放をし忘れる人が多いです。

たぶん、メモリが足りなければ、こちらの『パス名が無効です』のエラーも出ると思います。

とりあえず、『タスクマネージャー』で、二重・三重起動しているものなどないか、探してみてください。

後は、コードの問題とはなるのですが……。
    • good
    • 0

1Gでメモリ不足?うーん。

そのPCがおかしいってのが一番考えられる線。他のアプリケーションでメモリ使ってるのかな?それはわからないですね。飛ばします。

マクロの中にセーブするパスの名前があるわけじゃないのかしら?
そうしたら、パスがないってことはあると思うんですよね。

何をセーブしようとしているんでしょうか?フォーム?
それだったらファイル→エクスポート
をすれば一応は保存されるけど。(その部分だけ)
エクセルでマクロを使った場合は、マクロの内容、フォームの内容、その構造などが作られる。その構成のどこかが壊れている可能性はあるような。
エクセルのシート側をセーブできれば大丈夫かも。空白のでもいいから。

メモリがはじけているとセーブできない場合もあるけど、それは違うマシンでやったら大丈夫なんですよね?
でもパスは聞かれないしな。

この回答への補足

丁寧な回答ありがとうございます。

エクスポートもしてみたのですが、パス名が無効ですとでてしまってエクスポートできませんでした。
他のパソコンでも保存したりしたせいかもしれませんが・・・。

初歩的な質問なのですが、パス名というのはどこにあるものなのでしょうか?

補足日時:2005/08/01 17:03
    • good
    • 0

第一にそのマクロは他のパソコンで使っていたものを持ってきたのかしら?以前はちゃんと動いた?



メモリが不足ってのは理由はいっぱいあるなぁ。PCのメモリが純粋に不足してるのかな。
他のアプリケーションソフトを落として実行するか。エクセルって一回、落としてもメモリ食ってることがあるから再起動したほうがいいかも。でもそれでもメモリ食ってることあるけどね。何か、おかしな変数設定してそれがどんどんメモリ食うのかな?

マクロ内で何かパス(セーブする場所)を設定してるのかも。

どっちにしてもソースがわからないと、わからないのではないかしら。
エクセル、ウィンドウズのバージョン、PCのメモリを表示するともう少しいい回答が得られるかも。(今のままじゃ、手出せる人、ほとんどいないと思う。)

この回答への補足

WindowsXP で Excel2003 を使っています。
メモリは 1G あります。

初めは自分のパソコンでユーザーフォームを作成していたのですが、メモリ不足が出たため他のPCで試してもらい、そこで保存してもらいました。他のPCではメモリ不足にならなかったので、続きを作っていたら『パス名が無効です』というふうに表示されるようになりました。

メモリ不足のほうはどうにかなるのかもしれないのですが、パス名だけはどうすればいいのかわかりません

補足日時:2005/08/01 15:43
    • good
    • 0

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