こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBA印刷エラー(Windows98,Me)

Windows98及びMe上でエクセル2000のVBAで印刷コマンドを実行した場合、エラーが発生し、エクセルが強制終了してしまいます。

(VBA例)
Private Sub Command Button1.click()
WorkSheets("sheet1").Activate
ActiveSheet.PrintOut
End Sub

上記を実行すると、
”Excelが原因でKERNEL32.DLLにエラーが発生しました。Excelは終了します。・・・・・”
と表示され、エクセルが強制終了してしまいます。

これは、マイクロソフトの問題として、認識されており、

文書番号 436490
”XL2002 VBAでプリンタ関連コマンド利用時に強制終了”に回避策が紹介されています。

これは、VBAでプログラムを作成した環境と使用する環境のプリンタが異なる場合に発生するようですが、私が確認したところ、Windows98、Meの場合、VBA作成環境と使用環境が同じ場合でも発生します。簡単に言えば、Windows98、Meでは ”ActiveSheet.PrintOut ”というコマンドを実行すると、上記のエラーが発生してしまいます。なお、WindowsXP,2000では全く問題有りません。

 エクセル上で組まれたフリーソフトでWindows98、Me動作確認済みとあるものでも、印刷を実行すると、エラーが発生するものが多く有ります。

 マイクロソフトで公表されている回避策を実施しましたが、解決出来ません。

 何かよい方法がありましたら、教えて下さい。  

投稿日時 - 2005-03-16 16:33:23

QNo.1272884

困ってます

質問者が選んだベストアンサー

こんにちは。
提示のコードで検証してみましたが質問の状況は再現しませんでした。

WinXP, Excel2000で提示のコードを作成し
Win98Me, Excel2000, Printerは別のもの使用


ダメもとで以下のことを確かめてみたらどうでしょう。

●Excel2000は最新(SP-3?)にアップデートされてるか

●提示のコードを

  WorkSheets("sheet1").PrintOut に変更


以上です。

投稿日時 - 2005-03-17 16:12:46

お礼

taocatさま

おかげさまで解決しました。

エラーの原因は思わぬところにありました。
プリンタドライバのアップデートで解決しました。

XPの場合はドライバーが古いとインターネットからダウンロードを要求されるため、新しいドライバーを使用していましたが、WindowsMe,98の場合、プリンタ購入時の付属CDをそのまま使用していました。)

ご指摘のとおりエクセルのアップデートの確認、OSのアップデートの確認、VBAのコードを変えてみたり、ウイルスソフトが原因かも?・・・いろいろ試行錯誤した結果、そちらで”状況が再現しなかった”ということがとても大きなヒントとなりました。

本当にありがとうございました。

投稿日時 - 2005-03-17 23:50:50

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問