プロが教えるわが家の防犯対策術!

VBAで印刷するとエラーになってしまいます。

EXCELシートをボタンの押下で印刷するマクロを組んだのですが、
実行すると必ずエラーになってEXCEL自体が落ちてしまいます。
添付画面を参照して下さい。

普通にEXCELの印刷([ファイル]->[印刷])から印刷すると問題なく印刷できます。

何か足りないものがあるのでしょうか?
どなたか教えてください


以下ソース
----
Private Sub btn_Print_Click()

'ActiveSheet.PageSetup.CenterHeader = "&B&12印刷"
ActiveWorkbook.Worksheets(1).PrintOut

End Sub
----

「VBAで印刷するとエラーになってしまいま」の質問画像

A 回答 (6件)

質問と関連するかわかりませんが、エラー表示と同じような技術情報


がありました。

Excel 2003 修正プログラム パッケージ (Excel.msp) の説明
: 2008 年 8 月 26 日
http://support.microsoft.com/kb/956834/ja

xlsmファイルを開くマクロみたいなので違うと思いますが。
上記以外だと、こちら↓のようなものもあります。

[OFF2003] [INFO] Visual Basic の事前バインディングを使用すると、
Office オートメーションでエラーまたは予期しない現象が発生する
http://support.microsoft.com/kb/319832/ja

2 回目のコード実行時に Excel のオートメーションが失敗する
http://support.microsoft.com/kb/178510/ja

どれも関係するものとは違うかもしれませんが、少しでも関連情報
があれば参考になるかと思って、投稿しました。
    • good
    • 0

問題きりわけの為に


新規ファイルにコマンドボタンを1個、イベントは提示されたものだけ。
一応、コンパイルして置いてから実行してもエラーになるのですよね?

だとしたら
何かの環境によるものかも知れない。
複数のプリンタがあるのなら、既定のプリンタをかえてみるとか
他のPCが有ったらファイルを持ってて片っ端から試してみては。

この回答への補足

分かりました。

新規ファイルで再度確認してみたら問題なく印刷できました。
勘違いしていました。ウソ書いてすみません。

それで、相違点を調べていったところ、
エラーのEXCELファイルはフッターに画像を差し込んでいて、
それを取り除くとエラーが出なくなりました。

問題解決です。

みなさまのおかげで早めに解決できました。
ありがとうございました。

補足日時:2010/09/30 14:59
    • good
    • 0
この回答へのお礼

ありがとうございます。

>新規ファイルにコマンドボタンを1個、イベントは提示されたものだけ。
>一応、コンパイルして置いてから実行してもエラーになるのですよね?

のマクロで他のPCで実行しても同じ現象でした。
マクロというよりは環境の問題だと思います。

ちなみにプリンタは1台だけです。
通常の印刷は出るのにマクロ起動だとエラーになるのは何ででしょうかねえ。。。

お礼日時:2010/09/30 14:41

#2の回答者です。



プリンタとプリンタ・ドライバは正しく合っていますか?

プリンタのドライバの再インストール、もしくは、アップデートです。
そんなに難しいものではありません。詳しくは、そのプリンタのサポートサイトを参考にして、行ったら良いとか思います。
    • good
    • 0

提示されたまんまを試して見ましがエラーにはなりませんでした。


他にはまったく何も無いシンプルなファイルです。
問題の切り分けの為に、そちらで同様に試してみた場合にもエラーが出るか試されては。

エラー画面で『エラー報告を送信する』のボタンは押せませんか?
MSで対処方法が分かっている場合には、回答がポップアップで現れる場合があります。
    • good
    • 0
この回答へのお礼

ありがとございます。

『エラー報告を送信する』は押せました。
が、回答はありませんでした。

プリンタのほうに問題があるのでしょうか?

お礼日時:2010/09/30 09:16

こちらでは、こう書いているのに、


ActiveSheet.PageSetup.CenterHeader = "&B&12印刷"

>ActiveWorkbook.Worksheets(1).PrintOut

一見、合っているようでいても、私は、こういうコードは書いたことがありません。あぶないコードだなっていう印象です。

どこのモジュールに置いているのか分かりませんが、

  ActiveSheet.PrintOut

と書くのが普通です。もしくは、コントロールツールなら、

 Me.PrintOut

ですね。

どうしても、Worksheets(1)を入れたいというなら、安全のために、

With Worksheets(1) '←自ブックに限ります。
 .Select '←本来は無用
 .PrintOut
End With

とします。
    • good
    • 0
この回答へのお礼

ありがとうございます。

ActiveSheet.PrintOut

に変えても同様でした。

何がおかしいのか全くわからない状況です。

お礼日時:2010/09/30 09:14

Excel 2000ですか?


マクロの組みかたもありますが・・・
「"オートメーション エラー: 呼び出されたオブジェクトは、そのクライアントから切断されました"で Excel 2000 エラー メッセージ」
修正プログラム

参考URL:http://support.microsoft.com/kb/813120/ja
    • good
    • 0
この回答へのお礼

情報ありがとうございます。

あと、すみません。
EXCELのバージョンは2003 SP3です。

何か分かるようであればお願いいたします。

お礼日時:2010/09/29 18:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!