次の方法で共有

エクセルのバージョンによってExcel VBAの動作が異なる件について

Anonymous
2023-02-07T01:21:13+00:00

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 365 と Office | Excel | ビジネス向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2023-02-08T08:51:15+00:00

>メモリが不足

アプリケーションの場合、「メモリ不足」という時、物理メモリではなく、

アプリが使用している仮想メモリの使い方に問題があることが多いです。

1つの命令だけで、それを特定することは、無理です。

対策として、Cut ではなく、Copyに変更して、

複写後に削除したらいかがでしょう?

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2023-02-08T06:41:22+00:00

    続報です。

    試しに、さらに別の端末で試してみたところ、エラーなく動作しました。

    環境は以下の通りです:

    ・オフィス:Micorsoft Office Professional Plus 2016, 32bit

    ・メモリ:実装RAM 16GB

    オフィスのエディションの違いによるものなのでしょうか?

    できれば、最初にエアーが出た端末を使いたいのですが、

    オフィスを丸ごと変更するしかないのでしょうか?

    よろしくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2023-02-07T01:51:46+00:00

    返信ありがとうございます。

    すみません、情報を1つ忘れておりました。

    いずれも32bitです。

    よろしくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Nei First 30,455 評価のポイント ボランティア モデレーター
    2023-02-07T01:30:41+00:00

    どちらのOfficeも、32bit版、64bit版のどちらかに揃えられていますか?

    マクロ、VBAは、32bit版および64bit版のどちらでも動作するようにするには、ソースに一部手を加える必要があります(一部互換が無いため)

    Office の 32 ビット バージョンと 64 ビット バージョン間の互換性 | Microsoft LearnOfficeの32bit/64bit判別方法解説 (外部サイト)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません