データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ
>メモリが不足
アプリケーションの場合、「メモリ不足」という時、物理メモリではなく、
アプリが使用している仮想メモリの使い方に問題があることが多いです。
1つの命令だけで、それを特定することは、無理です。
対策として、Cut ではなく、Copyに変更して、
複写後に削除したらいかがでしょう?
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
CSV形式の数値データを編集するマクロを作成しています。
当初、Microsoft Office Home & Business 2019版のエクセルを使って作成しておりまして、
その環境では問題なく動作するのですが、
Microsoft Office Standard 2016の環境に移して、全く同じCSVファイルに対して実行すると、
実行時エラー '-2147417848 (80010108)'
'Insert'メソッドは失敗しました:'Range'オブジェクト
なるエラーメッセージが出て停止してしまいます。
ソースの中に、
ActiveWorkbook.Worksheets(1).Columns(x).Cut
ActiveWorkbook.Worksheets(1).Columns(y).Insert
※x, yは、処理の中で値が決まる変数で、x>y
という部分があり、これのInsert文がエラーを引き起こしているようなのですが、
原因が全く分かりません。
エクセルブックは、このマクロを搭載しているブックとCSVファイル、および編集後のデータを
記載するための無名のXLSXファイルの3つだけで、上記命令文より上の行でCSVファイルを
アクティベートしており、それ以降アクティブブックを変更していません。
原因と対策方法を教えていただけないでしょうか?
オフィスのバージョン違いによるものかとも思いましたが、調べてみても、
2016から2019へのアップデートでこれらの命令文に関して変更がされたという情報は
見当たりませんでした。
また上記の症状だけでなく、たまに
・デバッグモードに移ろうとするとエクセルが異常終了する
・同じCSVファイルでも、エラーが出たり出なかったりする
・上記エラーではなく、「メモリが不足している」とのエラー文が表示される
こともあるなど、症状が一定しません。
メモリが不足しているのであれば、確かにこれらの症状が起きることもありそうですが、
そもそも2019版の環境の方がスペックは低く(実装RAM値は、2019版が8GBに対し、2016版は16GB),
また、
・上記命令文の前の切りがよいところで "Application.CutCopyMode = False" を書き込む
・マクロ実装ファイルのシートをできるだけ減らす
・他のアプリケーションをすべて閉じる
などの対策を講じても事態が改善されません。
以上になります。
長文になってしまい、申し訳ありませんが、よろしくお願いいたします。
データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
>メモリが不足
アプリケーションの場合、「メモリ不足」という時、物理メモリではなく、
アプリが使用している仮想メモリの使い方に問題があることが多いです。
1つの命令だけで、それを特定することは、無理です。
対策として、Cut ではなく、Copyに変更して、
複写後に削除したらいかがでしょう?
続報です。
試しに、さらに別の端末で試してみたところ、エラーなく動作しました。
環境は以下の通りです:
・オフィス:Micorsoft Office Professional Plus 2016, 32bit
・メモリ:実装RAM 16GB
オフィスのエディションの違いによるものなのでしょうか?
できれば、最初にエアーが出た端末を使いたいのですが、
オフィスを丸ごと変更するしかないのでしょうか?
よろしくお願いいたします。
返信ありがとうございます。
すみません、情報を1つ忘れておりました。
いずれも32bitです。
よろしくお願いいたします。
どちらのOfficeも、32bit版、64bit版のどちらかに揃えられていますか?
マクロ、VBAは、32bit版および64bit版のどちらでも動作するようにするには、ソースに一部手を加える必要があります(一部互換が無いため)
Office の 32 ビット バージョンと 64 ビット バージョン間の互換性 | Microsoft LearnOfficeの32bit/64bit判別方法解説 (外部サイト)