• ベストアンサー

エクセルのマクロについて

他人の作ったエクセルのマクロを走らせようとしたところ、エラーになってしまい 止まってしまいました。 デバッグというところで見てみたら 「Print Quality = -4」 の部分が問題となっていました。 この意味がよくわからないのですが、わかる方教えて戴けますでしょうか? よろしくお願い致します。

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

  • ベストアンサー
noname#102878
noname#102878
回答No.3

#2です。 失礼しました。 「PrintQuality = -4」は私のプリンタ EPSON PM-900C(インクジェット)でも動作しました。 しかしこの部分はプリンタのドライバに対して印刷品質(解像度)を設定する部分ですので、ドライバの種類やバージョンに依存するのだと思います。 PCを変えたタイミングで発生したのですよね。 プリンタは同じものを使用していますか? プリント品質はプリンタによって違いますし、ドライバも違いますのでエラーとなる可能性があります。 OSは同じですか? 同じプリンタであってもWindows9xとWindowsNT系ではドライバが別物です。 すべてのOS用のドライバがまったく同じ機能でバージョンアップしてくれれば良いのですが、実際にはWindows9x系のドライバの方が高機能だったりします。 最近はWindowsXPがコンシューマ用としてスタンダードになりつつあるので、その差も埋まってきていますが・・・ OSもプリンタも同じだとして、ドライバのバージョンは同じですか? ドライバがバージョンアップすると機能や設定値の範囲が違ったりします。 現状、この1行をコメントアウトしても以前と印刷品質が変わらないのであればそのままコメントアウトでかまわないと思います。

stylishcom
質問者

お礼

会社のパソコンなのですが、たしかにパソコンとともにプリンターも変わりました。 OSは同じですが、プリンターが変わったからかもしれませんね。 一応以前と同じように印刷もできているようですの、このままコメントアウト(消しちゃうことですよね?)してしまいます。 謎が解決してすっきりしました。 意味がわからないものを消しちゃうのは抵抗があったので。。。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#102878
noname#102878
回答No.2

他人の作ったVBAのエラーは作った人に聞くのが筋ってもんですよ。 「Print Quality」が「PrintQuality」の間違いであれば「= -4」というのもおかしい。 Qualityが変数であれば「Print」は「Debug.Print」となると思うし、そうであれば「= -4」は余計。 Qualityが変数であり、「Quality = -4」が正しいのであれば「Print 」が意味不明。 「Debug.Print Quality - 4」としたいのであれば「=」は余計。 いずれにせよ、前後のコードと、そのプロシージャでは何をどうする作業をしているのかの説明をしてくれないと有効な回答は付かないと思います。

stylishcom
質問者

お礼

ありがとうございます。 確かに、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)
回答No.1

こんばんは。 >Print Quality = -4 私も見たことがありません。 それより、そのマクロはコンパイルは通るんですかね? もともと、そのソースがコンパイルエラーということはないですか? この1行だけでは、この変数?に値をセットする時点で、 コケているということしかわかりません。 通常、エラーで止まる場合は、その行だけですが、その前の行等も関係する場合もあります。 シングルステップ実行はF8キーで、ブレークポイントはF9でイイはずですので、 再度、確認しては如何でしょうか?

stylishcom
質問者

お礼

ありがとうございます。 今までずっと使えてたのにパソコンを変えたら使えなくなって しまったのです。 その問題の行を削除したらその他の部分は問題なく実行できました ので、この行の問題なのだと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロの作成で

    自分でエクセルのマクロを作り本を見ながら勉強しています。 複数セルにまとめて振り仮名をつけるマクロをつくり、実行しようとしたら、振り仮名はついたものの”実行時エラー28”スタック領域の不足と出ました。 これはどういう意味でしょうか。 又その画面でデバッグというのがありますがこれも教えてください。

  • エクセルマクロで教えてください。

    エクセルマクロで、プリンター出力で、困ることが多々発生しています。 どなたか対処法がわかりましたら教えてください。 下記のようにマクロを組んで、印刷させることをしていますが、 最後の「Ne01」がなぜかわからないのですが、よく勝手に変わってしまうのです。 S_PRINT = "RICOH imagio Neo 452 RPCS on Ne01:" とか、 Application.ActivePrinter = "EPSON PM-G4500 on Ne03:" とマクロを組んでます。 そのため、エラーとなったときに、マクロを開き、00から順番に02.03.などを入れ替えております。 エラーとならない方法はないでしょうか?

  • エクセル内のマクロを消去したい!><

    エクセルファイル内のマクロの削除の方法を教えて頂けないでしょうか? 他人からもらったエクセルファイルに、 「開こうとしているブックにはマクロが含まれています。」 と表示されることがあり、開く度にきかれるのでいらいらしています。>< ブックを開いているときに、 ツール→マクロ→マクロ としても問題のマクロが表示されないため削除できずに困っています。 どうかよろしくお願いします。

  • EXCELのマクロの隠し方

    EXCELでマクロを作成し動かしています。 これを多数の方に使ってもらうのですが、マクロ部分を壊されたり変更されてしまうと困るので、私以外の人からはマクロの中身を見えなくしたいのですが、どのようにすればいいのでしょうか? どなたか教えてください!

  • 強制終了するマクロプログラムのデバッグ方法

    エクセルで作成したマクロプログラムを実行すると、エラーで強制終了してしまいます。 (マクロのデバッグ画面ではなく、「この障害をMicrosoftへ報告しますか?」の確認画面が出て、 そのまま終了してしまう) このような状況のVBMacroのデバッグを行うためには、どんな方法があるでしょうか。 (すぐに考えられるのは、print文的な出力をワークファイルに順次行う。というようなものですが、他に良い方法があれば、お教えください) Windows-XPとExcel2003の組み合わせです。 よろしくお願いします。

  • エクセルのマクロについて

     エクセル2000を使用しています。  先月使っていたファイルをコピーして、今月分のデータを新たに入力しようと思ったのですが、このファイルにはマクロが設定されており、コピーした新しいファイルではエラーメッセージが出てマクロが実行されません。  このエラーメッセージ通りセキュリティーレベルを変更したのですが、やはり同じエラーメッセージが出てマクロが実行されません。  そこで先月分のファイルからマクロ部分のみをコピーして張り付けてみました。  これによってマクロは実行されるものの、その実行にとても時間が掛かってしまいます。  これを解決する良い方法があったら教えて下さい。よろしくお願いします。  *当方は初心者ですので、できれば難解な専門用語は使わないで下さい。お願いします。

  • エクセルのマクロについて

    エクセルのマクロについて 私は残念ながら‥マクロをくんだことはないのですが、他の方がくんだマクロの表に入力をする際、必ず マクロを有効にするか、無効にするかのメッセージがでてきますが、この意味はなんでしょうか? 『無効にしなさい』と教えられたので、そうしていますが、別の会社では『有効にしなさい』と教えられ、何も考えずにそのとおりにしておりました。 どうぞ宜しくお願いします。

  • エクセルのマクロについて

    エクセル2003で他人が作ったマクロを使おうとしているのですが、一時保存のボタンが消えてしまう事があります。何が原因でしょうか?

  • エクセルのマクロ命令PRINTについて教えてください。

    エクセルのマクロ命令PRINTについて教えてください。 マクロは、まったくの初心者で、プログラムを組んだことはありません。今回、項目ごとに並べたexcelの表からある列(日付)だけの状況(文字情報)を分析し表示・印刷するマクロ命令を作成しようと思っています。どうしたらよいかわからないので既にある類似のマクロプログラムを解析し、理解した上で、コピ-し修正するしようと読んでいるのですが、下記マクロ命令の意味がわかりません。どなたか教えていただけないですか。 ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" Excel4.0のMacro関数 "PRINT "を実行しなさい。と読むようですがPRINTの括弧内に書いてある引数(17個)の意味がまったく理解できません。 1,2,TRUE,FALSE,あるいはカンマで省略してあるのは何でしょうか。 また、このとおり、コピ-すれば、エクセル表を印刷できるか。 ホームペ-ジで検索したところ、引数として PRINT(印刷範囲, 開始, 終了, 部数, 簡易印刷, プレビュー, 印刷範囲, カラー印刷,給紙方法, 印刷品質, 縦方向の解像度, 印刷対象) と書いてあるものがありましたが、ここでの引数は12個と解読中の命令の引数17個より少なく一致しません。 宜しくお願いいたします。 本当にまったく素人です。よろしくお願い致します。

  • マクロで参照するファイルの拡張子

    マクロを使って集計作業をしています。 マクロでは複数のファイルから"vlook up"を使ってデータを参照しています。 今回参照するExcelファイルの拡張子が「xls」から「xlsx」に変わったのですが、 マクロを走らせるとエラーになりデバッグが立ち上がります。 マクロの編集で参照するファイルの拡張子を「xlsx」に変更したのですが、 やはりエラーとなり、集計がストップしてしまいます。 どうデバッグすれば良いのか分かりません。 そもそも「xlsx」の拡張子ではマクロが正常に動かないものなのでしょうか。

専門家に質問してみよう