【ExcelVBA】メモリーの解放方法・タイミングについて徹底解説!

皆さんは、VBAでメモリの解放をしたことがありますか?変数に入れた値をメモリ解放せずにいると、処理が重たくなったり、メモリリークで処理が動かなくなることもあります。そこで今回は、

メモリとは?
VBAでメモリを解放する方法を知りたい

といった基礎的なことから

  • VBAでメモリを解放するサンプルコード
  • 【よくある議論】VBAでメモリの解放は必要か?

といった応用的な方法まで、徹底的に解説します!

メモリとは?

はじめに、メモリについて簡単に解説します。メモリとは、PC上でデータを一時的に記憶しておく場所です。データのコピー、削除などの具体的な操作だけでなく、変数を使う場合にもメモリを使います。

特に、変数を使う場合は「メモリの解放」をしないと、処理が終わるまで無駄なメモリを使い続ける状態になるため、処理が遅くなったりメモリリークと呼ばれる強制的に処理が止まるエラーを引き起こす原因となってしまいます。

そのため、メモリの解放を意識してVBAのコードを書いていかなければなりません。

VBAで変数のメモリを解放する方法とは?

次に、変数のVBAでメモリの解放をする方法を解説します。次のように書くことで、簡単にメモリを解放することができます。

メモリ解放方法:

このように書くことで、変数を使うために確保したメモリの領域を解放することができます。

VBAでメモリを解放するサンプルコード

次に、サンプルコードをもとに、具体的な使い方について解説します。
サンプルコード:

rng1.Value = “変更1”のように値を変更した後、Set rng1 = Nothingメモリを解放しています。このように、使い終わった変数はメモリの解放をするのが重要です。

【よくある議論】VBAでメモリの解放は必要か?

ここまでメモリの解放について解説していきましたが、必ずメモリの解放が必要か?といったらそうではありません。理由は、サブシージャの処理が終わる「End Sub」まで到達すると、自動でメモリが解放されるからです。

先ほどのサンプルでいうと、次のように最後にメモリ解放をしている場合は、書く意味があまりありません。

最後にメモリ解放したサンプル:

Nothingでメモリを解放したあとに、End Subがあるのでコードを書くこと自体が無駄なわけですね。そのため、変数を使い終わったタイミングで、メモリ解放するコードを書くという意識が大事です。

まとめ

今回は、メモリの解放方法・タイミングについて解説しました。初めてメモリの解放を学んだ方は、使い方に慣れるまで時間がかかるかもしれません。しっかりと使い方を覚えてメモリを解放していくことで、バグの少ないコードを作ることができます。

ぜひ、使ってみてくださいね!

Excel VBAを最短で習得したい方へ

元々ITリテラシーの高い方やプログラムの学び方がわかっている方であれば、この記事通りに進めていけば、Excel VBAを独学で習得することができるでしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「なかなかやり遂げられ無い、挫折してしまった」
「時間が足りない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決することができない」

このような悩みを抱えている方も少なく無いと思います。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、より深くExcel VBAについて学習することできます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方やカリキュラムを考えてみませんか?

Excel VBAならではの学習方法や、現役エンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta2_vba2

LINEで送る
Pocket

書いた人

Sanshiro Wakizaka

Sanshiro Wakizaka

フリーランスエンジニア兼ライターのワキザカ サンシロウです。
ExcelVBAの自動化ツール開発、WEB開発をメインにエンジニア業務をこなしつつ、サムライエンジニアにてライター業務をしております。

プログラミングをこれからやってみたい方に向けて、ためになる記事を全力で書いていきますので宜しくお願い致します!

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説