「機能アドレスが保護違反を引き起こしました」印刷エラーの対処法 – Windows 11/10
Microsoft Word、Excel、PublisherなどのOfficeアプリケーションからファイルやドキュメントを印刷しようとした際に、「機能アドレスが保護違反を引き起こしました(Function address caused a protection fault)」というエラーメッセージが表示される場合、この記事が解決の手助けとなるでしょう。本記事では、このエラーを引き起こす可能性のある既知の原因を特定し、問題を解決するために試せる対処法を詳しく解説します。
印刷ジョブが失敗すると、以下のようなエラーメッセージが表示されます。
Function address 12345 caused a protection fault.
(exception code 12345)
アプリケーションのプロパティシートページが正しく機能しない可能性があります。
この印刷エラーに遭遇している多くのユーザーから報告されているのは、通常の方法で印刷する場合にはエラーが発生せず、Officeアプリケーションから印刷しようとしたときにのみエラーが現れるという点です。なお、エラーコードは異なるものの、同様のエラーメッセージが複数存在します。しかし、根本的な原因は共通しているため、同じ対処法ですべてのケースに対応できるはずです。
考えられる主な原因
このエラーメッセージは、以下の原因の1つまたは複数によって発生する可能性があります。
- 使用したいプリンターが既定のプリンターとして設定されていない
- プリンタードライバーが古くなっている
- プリンター関連のレジストリサブキーが破損している
- システムファイルの破損 – 発生頻度は低いものの、セキュリティスキャンで印刷サービスが必要とするファイルが隔離された後に発生することがあります
「機能アドレスが保護違反を引き起こしました」エラーの解決策
この印刷エラーに直面した場合は、以下の推奨ソリューションを順不同で試し、問題が解決するかどうか確認してください。
- プリンターのトラブルシューティングツールを実行する
- SFC/DISMスキャンを実行する
- 既定のプリンターを変更する
- プリンタードライバーを更新する
- プリンタードライバーをアンインストールし、印刷用サブキーの名前を変更してPrint Spoolerサービスを再起動する
- LegacyDefaultPrinterModeレジストリキーの値データを変更する
- システムの復元を実行する
それでは、各ソリューションの手順を詳しく見ていきましょう。
1. プリンターのトラブルシューティングツールを実行する
Windowsに内蔵されたトラブルシューティングツールを実行すると、プリンターとドライバーが再起動され、エラーの有無が自動的にチェックされます。この作業中はプリンターが接続されている必要があります。
プリンターのトラブルシューティングツールを実行するには、以下の手順に従います。
- スタートボタンをクリックし、設定を選択します。
- 更新とセキュリティに移動します。
- トラブルシューティングタブをクリックします。
- 下にスクロールしてプリンターをクリックします。
- トラブルシューティングツールの実行ボタンをクリックします。
- 画面の指示に従い、推奨される修正を適用します。
完了後、印刷を試みて、機能アドレスが保護違反を引き起こしましたというエラーが解決したかどうかを確認してください。解決しない場合は、次の解決策に進みます。
2. SFC/DISMスキャンを実行する
SFC(システムファイルチェッカー)とDISMは、Windowsシステムファイルの破損をスキャンし、破損したファイルを復元できるユーティリティです。両方をまとめて実行するには、以下の手順が便利です。
- Windowsキー + Rキーを押します。
- [ファイル名を指定して実行]ダイアログボックスにnotepadと入力し、Enterキーを押してメモ帳を開きます。
- 以下のコマンドをコピーしてテキストエディタに貼り付けます。
@echo off date /t & time /t echo Dism /Online /Cleanup-Image /StartComponentCleanup Dism /Online /Cleanup-Image /StartComponentCleanup echo ... date /t & time /t echo Dism /Online /Cleanup-Image /RestoreHealth Dism /Online /Cleanup-Image /RestoreHealth echo ... date /t & time /t echo SFC /scannow SFC /scannow date /t & time /t pause
- 任意の名前を付けて、拡張子.batを付けて保存します(例:SFC_DISM_scan.bat)。
- 管理者権限でバッチファイルを繰り返し実行します(保存したファイルを右クリックし、コンテキストメニューから管理者として実行を選択)。エラーが報告されなくなるまで繰り返します。
- PCを再起動します。
再度印刷を試みて、問題が解決したかどうかを確認してください。解決しない場合は、次の解決策に進みます。
3. 既定のプリンターを変更する
機能アドレスが保護違反を引き起こしましたという印刷エラーは、使用したいプリンターがWindowsの設定で既定として設定されていない場合にも発生することがあります。既定のプリンターを変更するには、以下の手順を実行します。
- Windowsキー + Rキーを押します。
- [ファイル名を指定して実行]ダイアログボックスにms-settings:printersと入力(コピー&ペースト)し、Enterキーを押して設定アプリのプリンターとスキャナー画面を開きます。
- プリンターとスキャナータブ内で、右側のペインを下にスクロールし、Windowsに通常使うプリンターの管理を許可するのチェックを外します。
- 使用したいプリンターをクリックし、既定として設定を選択します。
正しいプリンターを既定に設定したら、PCを再起動し、印刷エラーが解決したかどうかを確認します。解決しない場合は、次の解決策に進みます。
4. プリンタードライバーを更新する
この解決策では、プリンターの最新の印刷ドライバーがインストールされていることを確認する必要があります。最新版のプリンタードライバーは、メーカーの公式ウェブサイトからダウンロードできます。
または、デバイスマネージャーからプリンタードライバーを更新することもできます。手順は以下の通りです。
- Windowsキー + Xキーを押してパワーユーザーメニューを開き、Mキーを押してデバイスマネージャーを起動します。
- デバイスマネージャー内で、インストール済みデバイスの一覧を下にスクロールし、印刷キューセクションを展開します。
- 問題が発生しているプリンターを右クリックし、コンテキストメニューからドライバーの更新を選択します。
- 次の画面で、ドライバーソフトウェアの最新版を自動検索をクリックします。
- スキャンが完了するまで待ちます。新しいドライバーバージョンが見つかった場合は、画面の指示に従ってダウンロード&インストールを行います。
- デバイスを再起動します。
印刷ジョブを送信し、機能アドレスが保護違反を引き起こしましたという印刷エラーが解決したかどうかを確認してください。解決しない場合は、次の解決策に進みます。
5. ドライバーのアンインストール、印刷サブキーの名前変更、Print Spoolerサービスの再起動
この解決策では、プリンタードライバーのアンインストール、印刷関連レジストリサブキーの名前変更、Print Spoolerサービスの再起動という一連の作業を行い、エラーが解決するかどうかを確認します。
以下の手順に従います。
- 対象のPCにログインします。
- Windowsキー + Xキーを押してパワーユーザーメニューを開き、Mキーを押してデバイスマネージャーを起動します。
- デバイスマネージャー内で、インストール済みデバイスの一覧から印刷キューのドロップダウンメニューを展開します。
- 削除したいプリンタードライバーを右クリックし、デバイスのアンインストールを選択します。
- アンインストールをもう一度クリックして、操作を確定します。
アンインストールが完了したら、デバイスマネージャーを終了できます。
- 次に、Windowsキー + Rキーを押して[ファイル名を指定して実行]ダイアログボックスを呼び出します。
- ダイアログボックスにprintui.exe /s /t2と入力し、Enterキーを押してプリントサーバーのプロパティ画面を開きます。
- プリントサーバーのプロパティ画面で、ドライバータブに移動し、問題の原因となっているドライバーを選択します。ドライバーを選択した状態で、削除ボタンをクリックします。
- ドライバーとパッケージの削除ダイアログが表示されます。
- ドライバーのみを削除するのラジオボタンを選択します。
- OKをクリックします。
処理が完了したら、プリントサーバーのプロパティ画面を終了します。
- 再びWindowsキー + Rキーを押して[ファイル名を指定して実行]ダイアログボックスを開きます。
- テキストボックスにregeditと入力し、Enterキーを押してレジストリエディターを起動します。
重要: この手順を進める前に、必ずレジストリのバックアップを作成してください。何か問題が発生した場合にレジストリを復元できるようにするためです。
- 以下のレジストリキーのパスに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\
この場所で、Print Processors配下のすべてのサブキーまたはキーの名前に.old拡張子を付けて変更します。これにより、Windowsはそれらのキーを無視し、代わりに新しいフォルダと値を作成するようになります。
注: この例では、サブキーは1つ(winprint)しかないため、winprint.oldという名前に変更しています。
この手順が完了したら、レジストリエディターを安全に閉じることができます。
- さらに、[ファイル名を指定して実行]ダイアログボックスを呼び出し、テキストボックスにservices.mscと入力してEnterキーを押し、サービスウィンドウを開きます。
- サービスウィンドウで、Print Spoolerサービスを見つけます。
- Print Spoolerを右クリックし、プロパティを選択します。
- プロパティウィンドウで、停止をクリックします。
これにより、印刷キューのプロセスが停止します。Print Spoolerのプロパティウィンドウは開いたままにしておいてください。
- 次に、エクスプローラーを開き、以下の場所に移動します。
C:\WINDOWS\system32\spool\PRINTERS
- PRINTERSフォルダ内のすべてのファイルを削除します。
ファイルが表示されない場合は、表示タブをクリックし、隠しファイルにチェックを入れてください。
- エクスプローラーのウィンドウを閉じます。
- Print Spoolerのプロパティウィンドウで、開始ボタンをクリックしてサービスを再起動します。
PCを再度再起動し、次回の起動時に必要なプリンタードライバーを再インストールします。その後、もう一度印刷を試みて、問題が解決したかどうかを確認してください。
6. LegacyDefaultPrinterModeレジストリキーの値データを変更する
この解決策では、機能アドレスが保護違反を引き起こしましたという印刷エラーを解決するために、レジストリエディターでLegacyDefaultPrinterModeレジストリキーの値データを変更します。
手順は以下の通りです。レジストリのバックアップを忘れずに作成してください。
- 以下のレジストリキーのパスに移動します。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
- 右側のペインでLegacyDefaultPrinterModeをダブルクリックし、プロパティを編集します。
- 値データを1に設定します。
これにより、Windows 10での以前の既定プリンターの動作に戻ります。
- OKをクリックして変更を保存します。
- PCを再起動します。
問題が解決したかどうかを確認してください。解決しない場合は、次の解決策に進みます。
7. システムの復元を実行する
機能アドレスが保護違反を引き起こしましたという印刷エラーが最近発生し始めたことに気づいた場合、システムが最近経験した変更が原因である可能性があります。
Officeアプリケーションの印刷機能を壊すことになった変更が何だったのか分からない場合は、システムの復元を使用して、印刷が正常に動作していたことが確実な日付の時点に戻すことができます(アプリケーションのインストール、ユーザー設定など、その期間に行われた変更は失われることに注意してください)。
システムの復元を実行するには、以下の手順に従います。
- Windowsキー + Rキーを押します。
- [ファイル名を指定して実行]ダイアログボックスにrstruiと入力し、Enterキーを押してシステムの復元ウィザードを開きます。
- システムの復元の初期画面が表示されたら、次へをクリックして次のウィンドウに進みます。
- 次の画面で、別の復元ポイントを表示するに関連付けられたチェックボックスをオンにします。
- その後、エラーに最初に気づいた日付より古い復元ポイントを選択します。
- 次へをクリックして次のメニューに進みます。
- 完了をクリックし、最後のプロンプトで確定します。
次回のシステム起動時に、以前のPCの状態が適用されます。
これらの解決策のいずれかが、あなたの問題の解決に役立つことを願っています!
-
【解決策】Windows 11/10で印刷時に「ポートが使用中です。お待ちください」と表示されるエラーの対処法
一部のWindowsユーザーから、パソコンから印刷しようとした際に「ポートが使用中です。お待ちください(Port in use, please wait)」というメッセージが表示されるという報告があります。どれだけ待っても状況は改善せず、一方でスマートフォンからの無線印刷は問題なく動作し続けるというケースも見られます。このことから、プリンターとパソコンの間に何らかの不具合が発生していると考えられます。同じトラブルにお困りの場合は、以下の手順で解決を試みてください。 「ポートが使用中です。お待ちください」エラーの対処法 1. プリンターのトラブルシューティングツールを実行する まずは、Windo
-
【解決策】Officeで印刷時に「機能アドレスが保護違反を引き起こしました」エラーが出る原因と対処法
Word、Excel、PublisherなどのOfficeアプリケーションから印刷しようとした際に、「機能アドレスが保護違反を引き起こしました(Function Address Caused a Protection Fault)」というエラーメッセージが表示され、まったく印刷できないという相談が多く寄せられています。興味深いことに、このエラーは通常の方法(他のアプリケーションなど)から印刷する場合には発生せず、Officeアプリケーション内から印刷操作を行ったときにのみ現れるという報告がほとんどです。また、この問題は特定のWindowsバージョンに限定されたものではなく、Windows 7、