すぐマク YNxv9b72 Home | Search | Contents | Gallery | Introduction | Service | Support | What's New!
「ActivePrinterメソッドは失敗しました」のエラーが出るが?
Question 59.5 印刷 Excel VBA Borad (掲示板)より Previous Next
以下の文で実行時エラーになってしまいます。
---------------
エラー:実行時エラー '1004'
'ActivePrinter'メソッドは失敗しました。'_Application'オブジェクト
---------------
他のPCでは正常に処理されます。 私の環境のどこを見ればいいかご存じの方は教えてください。 両PCともにバージョンはExcelXPです。
  Application.ActivePrinter = Range("PRTNAME").Value
Answer  Excel 2002 Copyright (C) 2003.3.20 Yoshioh Nagai
Windows XPのメッセージボックス わずか 1行のコードですが、いくつかチェックポイントがあります。

1. 両PCの OSのバージョンは?
Excel XP(2002)は、OSが Windows XPか または Me(98含む)かによって画面表示が大きく異なりますし、ご質問のプリンタ制御にも相違点があります。
Windows Meのメッセージボックス 同一のプリンタを使用している場合にアクティブプリンタの名前を表示すると、
Windows XPパソコンでは右上図のデザインのメッセージボックスが表示されるのに対し、
Windows Meパソコンでは、右下図のメッセージに変わります。

ここで注目すべき点は、プリンタ名も変わっていることです。
これら 2つの図は、下記のマクロで表示したものです。
Sub アクティブプリンタの名前を取得して表示する()
    MsgBox "現在使用しているプリンタ名は " & Application.ActivePrinter
End Sub
2. アクティブプリンタの名前が 'PRTNAME' と名付けられたセルに正しく入っているか?
名前ボックスとアクティブプリンタの名前
例えば左図のように、A1セルに 'PRTNAME' という名前が正しく定義されているとして、そのセルには上記 1.のアクティブプリンタの名前が正しく入力されている必要があります。
もしも、Windows XP環境で作成されたブックのマクロを Windows Me環境で実行しようとしているならば、そのセルの値を修正して整合性を保つ必要があります。
名前の定義ダイアログボックス
3. 名前が正しく定義されているか?
提示されたコードのイコール記号の右辺は、
Range("PRTNAME").Value で、セルに付けられた名前で範囲選択しています。

仮に、これが正しく定義されていないとすると異なるエラーになりますから、まず、心配はないでしょうが一応、再チェックしておきましょう。
【参考ページ】
アクティブ プリンタを選択して設定するには
http://www.geocities.jp/happy_ngi/ Home | Contents | Gallery | Introduction | Service | Support | What's New!