ArrayList「メモリが不足しています。」のエラーが出る原因を説明
パソコンを変えたところ、これまでエラーの無かったマクロで「メモリが不足しています。」というエラーが発生するようになりました。
原因を確認したところマクロ内で参照していた「ArrayList」が原因でした。
詳しい原因と対策を紹介します。
「メモリが不足しています。」の原因
調べてみると、.NET 4.5 Framework以降?で、外部からのSystem.Collection.ArrayListへのアクセスができなくなっているようだ。最近のWindows10はクリーンインストール時に、.NET 4.5 Framework以前の環境が無効化されている。
https://qiita.com/jiey@github/items/cd6cada8ce38856396d8
最近のWindowsではArrayListに外部からアクセスできなくなったようです。
マクロ(VBA)からもArrayListにアクセスすることができず、エラーが発生したようです。(もうちょっと分かりやすいメッセージだといいのに。。。)
「メモリが不足しています。」の対策
最近の.NET Frameworkだと外部アクセスができませんが、以前の.NET Frameworkであれば問題なく利用できます。
そのため、以前の「.NET Framework 3.5」を有効化することでエラーを解消させることができます。
まず、「Windowsの機能の有効化と無効化」を開きます。(Windowsキーを押して「Windowsの機能の有効化と無効化」と打ち込めば出てきます。
上の画像が表示されるので、その中の「.NET Framework 3.5」のチェックボックスをクリックします。
不足している内容については自動的にダウンロードが始まり、「.NET Framework 3.5」が有効化されます。
この状態になれば「ArrayList」のエラーが解消されているはずです。