![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
VBAで、Aシート(B5用紙)をCプリンタで、Bシート(A6用紙)をDプリンタで印刷するコードを前回教えて頂いたので、試行してみましたが、エラーがでてしまいました。どこが間違っているか教えて下さい。お願いします。作成したコードは次のとおりです。同じコードがVBAProject(PERSOVNAL(回復済み).xlsb)のModule 1に作成されました。このため、印刷すると、勝手にPCが連続印刷になり、止まらなくなります。
Private Sub 印刷2()
Dim Sh11 As Worksheet
Set Sh11 = Worksheet("振替伝票")
Dim orgPrinter As String
orgPrinter = Application.ActivePrinter
Debug.Print "印刷前 :" & Application.ActivePrinter
Call Sh11.PrintOut(ActivePrinter:="Canon TR9530 series (1 コピー)")
Debug.Print "印刷直後 :" & Application.Printer
Application.ActivePrinter = orgPrinter
Debug.Print "戻したよ: " & Application.ActivePrinter
End Sub
見にくいかと思いますが、画像を添付します。
![「VBA、AシートとBシートを別々のプリン」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/9/542937145_61a17fa1c3ac8/M.jpg)
No.1ベストアンサー
- 回答日時:
こんにちは
エラーの原因は、コピペミス(?)。
>Set Sh11 = Worksheet("振替伝票")
の「s」が抜けています。
Set Sh11 = Worksheets("振替伝票")
ただし、シート名が正しいのかどうかまでは、こちらではわかりかねます。
ご提示のコードは、プリンタを指定してシートを印刷出力するものですが、ご質問文にあるように2枚のシートをプリンタを変えて印刷するものではありません。
また、シート名と同様に、プリンタ名が正しいのかどうかは、こちらではわかりません。
両方とも質問者様の環境に依存する内容ですから、ご自身で適切に指定してください。
>このため、印刷すると、勝手にPCが連続印刷になり、止まらなくなります。
パーソナルブックにコードがあっても、止まらなくなることはないと思いますけれど、不要であるならば削除しておいた方が宜しいでしょう。
(どのような使い方をなさりたいかによります)
有難うございます。
>Set Sh11 = Worksheet("振替伝票")の「s」が抜けています。
訂正しました。「Set Sh11 = Worksheets("振替伝票")」
印刷でき、連続印刷がなくりました。
>2枚のシートをプリンタを変えて印刷するものではありません。
出来ないことはわかりました。説明不足ですみません。補足コメントでご説
明します。
パーソナルが2つになり、コードが違うのですが、どちらかに1つにできないでしょうか?コードは補足コメントに提示します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- プリンタ・スキャナー 2台のプリンターでそれぞれ異なる様式の帳票を印刷したい。 2 2022/09/06 10:07
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- Excel(エクセル) 請求書と領収書の作成 4 2022/11/10 16:13
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) 【マクロ】プリントスクリーンした画像をエクセルに貼付して印刷したい 6 2022/11/30 20:11
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
[Visual Studio] ソースの印刷...
-
VBAで印刷スプール終了の判定を...
-
印刷ダイアログを表示させたくない
-
2回以上PDFをコピーや印刷がで...
-
クリレポのプリンタ設定について
-
C++Builder5で画像データを用紙...
-
出力するプリンタを指定したい。
-
プリンタの印刷ジョブを削除し...
-
印刷ダイアログを表示させない方法
-
VB2008で0ページの印刷ジョブを...
-
ACCESSで設定した帳票の用紙サ...
-
Accessフォームで全レコードを...
-
プリンターを指定して印刷するには
-
VB2005から複合機を使い自動FAX...
-
ActiveReportsを使って[印刷ダ...
-
VBAで不特定枚数印刷をしたいで...
-
プリンターエラーの判定
-
エクセルの入力履歴を知りたい
-
VBからのプリンタ制御について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
印刷要求順番と印刷出力順番が...
-
プリンターを指定して印刷するには
-
vbaでPDFファイルが印刷されない
-
VBAで印刷スプール終了の判定を...
-
PDFファイルを印刷し終了するには
-
VBからプリンタに出力する時に...
-
ACCESSで設定した帳票の用紙サ...
-
印刷ダイアログを表示させたくない
-
VBscriptでPDFファイルを直接印...
-
ActiveReportsを使って[印刷ダ...
-
VBAで印刷の成功判定
-
Accessフォームで全レコードを...
-
VB.NET+ActiveReports で印刷...
-
A4の2枚をA3の1枚にする編集方法?
-
Eclipseを使ってソースを印刷し...
-
EXCELファイルの複数ダウンロー...
-
Javaから直接プリンターへ印刷...
-
出力するプリンタを指定したい。
-
VBAにて指定したセルをプルダウ...
おすすめ情報
説明不足ですみません。
帳票の様式(大きさ)が異なるため、1枚はAシートでCプリンタで、もう1枚はBシートでDプリンタで印刷できるよう別々に指定にしたいと思っています。すでに、AシートでCプリンタでの印刷コードは作動しています。
PCはCプリンタを通常使うプリンタのCプリンタになっており、BシートをDプリンタで印刷とすると 設定がDプリンタに変わってしまいます。それぞれのシートに「印刷」ボタンを作成し作動させています。プリンタの指定変わらないようにしたいのが希望です。
印刷2のマクロのコードは、「PERSONAL.XLSB!印刷2」で、Aシートの振替伝票をCプリンタで出力します。
① VBAProject (PERSONAL.XLSB)のモジュールのコードは、
以下、追加補足します。
続きです。
Sub 印刷2()
' 印刷2 Macro
Application.Run "PERSONAL.XLSB!印刷2"
End Sub
② VBAProject (PERSONAL(回復済み).xlbのモジュールのコードは、
Private Sub 印刷2()
Dim Sh11 As Worksheet
Set Sh11 = Worksheets("振替伝票")
Dim orgPrinter As String
orgPrinter = Application.ActivePrinter
ebug.Print "印刷前 :" & Application.ActivePrinter
以下、続きます。
続きです。
Call Sh11.PrintOut(ActivePrinter:="Canon TR9530 series (1 コピー)")
Debug.Print "印刷直後 :" & Application.Printer
Application.ActivePrinter = orgPrinter
Debug.Print "戻したよ: " & Application.ActivePrinter
End Sub
こんばんは。いろいろ試行していたら、ディバックが表示されるので、コードをもう一度チェツクしたところ、Activeが欠落していました。一応解決しました。有難うございました。