- ベストアンサー
エクセルのマクロについて
他人の作ったエクセルのマクロを走らせようとしたところ、エラーになってしまい 止まってしまいました。 デバッグというところで見てみたら 「Print Quality = -4」 の部分が問題となっていました。 この意味がよくわからないのですが、わかる方教えて戴けますでしょうか? よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#2です。 失礼しました。 「PrintQuality = -4」は私のプリンタ EPSON PM-900C(インクジェット)でも動作しました。 しかしこの部分はプリンタのドライバに対して印刷品質(解像度)を設定する部分ですので、ドライバの種類やバージョンに依存するのだと思います。 PCを変えたタイミングで発生したのですよね。 プリンタは同じものを使用していますか? プリント品質はプリンタによって違いますし、ドライバも違いますのでエラーとなる可能性があります。 OSは同じですか? 同じプリンタであってもWindows9xとWindowsNT系ではドライバが別物です。 すべてのOS用のドライバがまったく同じ機能でバージョンアップしてくれれば良いのですが、実際にはWindows9x系のドライバの方が高機能だったりします。 最近はWindowsXPがコンシューマ用としてスタンダードになりつつあるので、その差も埋まってきていますが・・・ OSもプリンタも同じだとして、ドライバのバージョンは同じですか? ドライバがバージョンアップすると機能や設定値の範囲が違ったりします。 現状、この1行をコメントアウトしても以前と印刷品質が変わらないのであればそのままコメントアウトでかまわないと思います。
その他の回答 (2)
他人の作ったVBAのエラーは作った人に聞くのが筋ってもんですよ。 「Print Quality」が「PrintQuality」の間違いであれば「= -4」というのもおかしい。 Qualityが変数であれば「Print」は「Debug.Print」となると思うし、そうであれば「= -4」は余計。 Qualityが変数であり、「Quality = -4」が正しいのであれば「Print 」が意味不明。 「Debug.Print Quality - 4」としたいのであれば「=」は余計。 いずれにせよ、前後のコードと、そのプロシージャでは何をどうする作業をしているのかの説明をしてくれないと有効な回答は付かないと思います。
お礼
ありがとうございます。 確かに、Print Quality ではなくて PrintQuality でした。 すみません。 でも = -4 となっています。 これは今まで何年も使ってたマクロで、問題なく動いていたのですが 作った人はもういないのです。 ただ、パソコンを変えたらできなくなってしまったので それと関係があるのかもしれません。 あまり詳しくないのですが、書式の設定をしているのだと思います。 With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = "&A" .RightHeader = "" .LeftFooter = "" .CenterFooter = "- &P -" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.393700787401575) .RightMargin = Application.InchesToPoints(0.393700787401575) .TopMargin = Application.InchesToPoints(0.590551181102362) .BottomMargin = Application.InchesToPoints(0.590551181102362) .HeaderMargin = Application.InchesToPoints(0.511811023622047) .FooterMargin = Application.InchesToPoints(0.511811023622047) .PrintHeadings = False .PrintGridlines = False .PrintNotes = False .PrintQuality = -4 .CenterHorizontally = True .CenterVertically = True .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 End With
- Good-S15
- ベストアンサー率33% (149/439)
こんばんは。 >Print Quality = -4 私も見たことがありません。 それより、そのマクロはコンパイルは通るんですかね? もともと、そのソースがコンパイルエラーということはないですか? この1行だけでは、この変数?に値をセットする時点で、 コケているということしかわかりません。 通常、エラーで止まる場合は、その行だけですが、その前の行等も関係する場合もあります。 シングルステップ実行はF8キーで、ブレークポイントはF9でイイはずですので、 再度、確認しては如何でしょうか?
お礼
ありがとうございます。 今までずっと使えてたのにパソコンを変えたら使えなくなって しまったのです。 その問題の行を削除したらその他の部分は問題なく実行できました ので、この行の問題なのだと思います。
お礼
会社のパソコンなのですが、たしかにパソコンとともにプリンターも変わりました。 OSは同じですが、プリンターが変わったからかもしれませんね。 一応以前と同じように印刷もできているようですの、このままコメントアウト(消しちゃうことですよね?)してしまいます。 謎が解決してすっきりしました。 意味がわからないものを消しちゃうのは抵抗があったので。。。 ありがとうございました。