コンピュータのメンテナンス
 Computer >> コンピューター >  >> トラブルシューティング >> コンピュータのメンテナンス

ランタイムエラー7(メモリ不足)の原因と修正方法を徹底解説

ランタイムエラー7は、Visual Basicで開発されたプログラム内部の競合によって発生するエラーです。たとえば、DataComboコントロールのリスト部分を下方向へスクロールし、現在選択中の要素がリストに表示されなくなった状態で、Visual BasicのコードからBoundTextプロパティを開こうとすると、次のようなエラーメッセージが表示されることがあります。

ランタイムエラー「7」:メモリが不足しています(Out of Memory)

このメッセージが表示されても、実際にはメモリ不足は発生しておらず、システム自体は正常に動作しているケースがほとんどです。つまり、エラー表示は実態と異なるものであり、真の原因は別の場所にあります。以下の手順に従って修正していきましょう。

ランタイムエラー7の原因とは?

ランタイムエラー7は通常、次の形式で表示されます。

ランタイムエラー「7」:メモリが不足しています(Out of Memory)

このエラーの主な原因は、FM20.dllファイルの破損または損傷です。FM20.dllは、Visual Basicが作成したプログラム内のさまざまな機能や設定を処理するために使用されるファイルですが、Visual Studioなど他の開発環境ではサポートされていないため、競合や不具合が起こりやすいという特徴があります。

幸いなことに、このエラーはアプリケーションからFM20.dllを取り除き、PC上のcomctl32.ocxファイルの登録を解除することで解消できます。以下、具体的な手順を順番に見ていきます。

ランタイムエラー7の修正方法

手順1:アプリケーションからFM20.dllを削除する

Visual Basicで開発したプログラムがFM20.dll(ダイナミックリンクライブラリ)を使用している場合は、競合を避けるため削除をおすすめします。DLLファイルには複数のアプリケーションで共有される関数が含まれており、破損するとアプリ側でエラーメッセージが表示されることがあります。削除手順は以下の通りです。

1. コマンドプロンプトを開く

  • スタート > ファイル名を指定して実行をクリック
  • ボックスに「cmd」と入力(引用符は不要)
  • OKをクリック

2. DLLの登録を解除する

  • regsvr32 /u fm20.dll」と入力(引用符は不要)
  • Enterキーを押す
  • 処理が正常に完了したことを知らせる確認ダイアログが表示されます

手順2:Comctl32.ocxファイルの登録解除と削除

Comctl32.ocxは、WindowsがPC上の各種Visual Basicコンポーネントを制御するために使用する重要なファイルです。しかし、このファイルは破損しやすく、ランタイムエラー7の原因となることがあります。最も効果的な対策は、一度ファイルを削除してから再登録することです。

1. コマンドプロンプトを開く

  • スタート > ファイル名を指定して実行をクリック
  • regsvr32 -u comctl32.ocx」と入力(引用符は不要)
  • 「DLLが登録されていません」というメッセージが表示されたらOKをクリック

2. ファイルを検索する

  • スタート > 検索をクリック
  • すべてのファイルとフォルダーを選択
  • 「ファイル名のすべてまたは一部」ボックスにComctl32.ocxと入力
  • 「探す場所」のドロップダウンからローカルハードディスクを選択
  • 検索をクリックすると、右側のペインに結果が表示されます
  • Comctl32.ocxが保存されているフォルダーの場所を控え、ファイルを右クリックして削除します

手順3:Comctl32.ocxファイルを手動で置き換える

Comctl32.ocxが破損・損傷している場合や、システム上で使用するための必要な権限を持っていないケースもよくあります。その場合は、ファイルを手動で置き換えることでエラーを解消できる可能性があります。手順は以下の通りです。

  1. 信頼できる配布元からComctl32.zipをダウンロードする
  2. Comctl32.ocxファイルをハードドライブ上に展開(解凍)する
  3. C:\Windows\System32フォルダーを開く
  4. システム上の既存のComctl32.ocxを探す
  5. 既存ファイルの名前をComctl32BACKUP.ocxに変更する(バックアップとして保持)
  6. 新しいComctl32.ocxC:\Windows\System32にコピー&ペーストする
  7. スタート > ファイル名を指定して実行をクリック(Vista / Windows 7の場合は検索ボックスに「run」と入力)
  8. 表示されたボックスに「cmd」と入力する
  9. 黒い画面(コマンドプロンプト)に「regsvr32 Comctl32.ocx」と入力する
  10. Enterキーを押す
  11. PCを再起動する

手順4:ウイルスの駆除を行う

ウイルス対策ソフトは、PC内をスキャンしてウイルスやマルウェア感染を検出・除去するためのツールです。ウイルスはPC上のさまざまなDLLファイルに感染し、それらをPCが読み取れない状態にしてしまうことがあります。これがエラーの原因になっていないか確認するためにも、ウイルス対策ソフトでシステム全体をスキャンし、感染ファイルを確実に除去しましょう。無料・有料を含めて多くのセキュリティソフトが提供されているので、評価の高いものを選ぶのがおすすめです。

手順5:レジストリのクリーンアップを行う

ランタイムエラー7のもう一つの大きな原因として、Windowsのレジストリデータベースの問題が挙げられます。「レジストリ」とは、PCの設定・情報・オプションをすべて格納する中央データベースであり、Windowsの動作に不可欠な設定の多くがここに保存されています。レジストリの設定が破損・汚損すると、PCの起動や動作が遅くなり、さまざまなエラーが頻発するようになります。

この問題を解決するには、「レジストリクリーナー」を使用してPCをスキャンし、破損または汚損した設定を修復するのが有効です。ただし、レジストリはWindowsの中核を担う重要な領域のため、操作の際は必ず事前にバックアップを作成し、信頼できるソフトウェアだけを使用するようにしてください。

  1. ランタイムエラー372とは?主な原因と解決方法をわかりやすく解説

    ランタイムエラー372は、パソコンが特定のソフトウェアから「ImageList(イメージリスト)」コントロールを読み込めないときに発生するエラーです。このエラーは、Windowsの重要なファイルが正しく動作していないことを意味しており、早急な対処が必要です。エラーはランダムに発生するように見えますが、その多くは特定のプログラムが原因で、システムが必要とするファイルや設定へアクセスできなくなっていることが背景にあります。幸い、適切な手順を踏めば問題は解決できます。本記事では、具体的な修正方法を詳しく解説します。 実際に表示されるエラーメッセージは、一般的に以下のような形式です。 実行時エラー 3

  2. Windows 10で発生するファイルシステムエラーの直し方|エラーコード別の原因と対処法を徹底解説

    この記事では、Windows 10で発生するファイルシステムエラーを簡単に修復する方法をご紹介します。 ファイルシステムエラーとは? ファイルシステムエラーは、主に破損したファイルやシステムファイルの不整合によって引き起こされます。ウイルス感染や、正常に動作しないアプリケーションが原因となるケースもあります。 実際のエラー画面は以下のような表示になります。 エラーが表示される際には、(-1073741566)、(-2143322101)、(-1073741819)、(-805306367)、(-2147163890)、(-2015294512)、(-2147xxx)といった番号が併記されます