• ベストアンサー

同じマクロなのに結果が違う

全く同じマクロを同じパソコンで使っているのにエラーになったりならなかったりします。 以前の質問で教えていただいた方法で 原因となる場所は特定できたのですが何がよくないのかがわかりません。 問題のコードは 「ActiveSheet.PageSetup.PrintArea = "$A$1:$B$2"」 で、 エラーメッセージは 「実行時エラー '1004' PageSetupクラスのPrintAreaプロパティを設定できません。」 というものです。 一体何がよくないのでしょう?

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

Excel のページ設定は、プリンタドライバに情報を問い合わせますので、 有効なプリンタドライバが PC にインストールされてないと、一切ページ 設定などの印刷絡みの操作はできません。 逆に言えば、ドライバさえあれば、プリンタはオフラインでもページ設置 は可能なんです。ここを踏まえ、 > 会社のパソコンなのでプリンタにはLAN経由で接続しています。 > いつでも印刷できる状態です。 とすれば、VBA ソースコード側の問題でしょう。 >「ActiveSheet.PageSetup.PrintArea = "$A$1:$B$2"」 ここで言う ActiveSheet がアクティブの状態でないと実行時にエラー になるかもしれません、、多分... できれば、ActiveSheet を使わない書き方がベストですが、どうしても シートを固定させたくないのであれば、   Selection.Select '<--追加   ActiveSheet.PageSetup.PrintArea = "$A$1:$B$2" で、どうでしょう。違うかな...?(自信なし)

erara
質問者

お礼

質問後も試行錯誤を続けていたのですが、同じパソコンではあるものの、マクロ実行前の状態が違っていました。申し訳ありません。 どうも「オブジェクトの選択」ボタンが有効になっている時にエラ-になり、無効の時には問題なく動くようです。 幸いこのボタンのオン/オフの方法は既知でしたので一応、問題は解決しました。お騒がせしました。

その他の回答 (4)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.4

マクロはどのアプリケーションから実行されていますか。 ActiveXコントロールのイベントプロシージャ内に記述されているのでしょうか。

erara
質問者

お礼

コメントありがとうございます。 かなり煮詰まっていたもので近視眼的な思考に陥っていました。 「マクロ=エクセル」ぐらいの狭い視野で説明が疎かになっていました。 今後は気をつけます。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

プリンタドライバ が インストール されていないと、 ページ 設定を実行できません。 ドライバ はインストールされてますか?

erara
質問者

お礼

皆様、コメントありがとうございます。 会社のパソコンなのでプリンタにはLAN経由で接続しています。 いつでも印刷できる状態です。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

実行時にプリンタ側の電源が入っていないとか? 最近のは、プリンタに印刷命令が行って自動的に電源ONになりますが タイミングによっては上記のメッセージが出ます。

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.1

(自信を持った回答ではありません) プリンタはちゃんと使用できる状態でしょうか。 ひょっとしてプリンタ未接続とか使用できない状態のときにエラーがでていないでしょうか。 ご確認下さい。

関連するQ&A

専門家に質問してみよう