電子書籍の厳選無料作品が豊富!

作業ブックに下記のマクロを設定しております。
先日PCをWindows10からWindows11のVersionアップしまし処、
このマクロを実行する事が出来なくなりました。
解決方法を教えてください。
尚、コード中の「= "LBP8710 on Ne02:"」部分を「= "LBP8710 on Ne01:"」等に変更しても
ダメでした。
よろしくお願いいたします。
現状のマクロ
Sub 青紙印刷()
'通常のプリンタを記憶
Dim myPrinter As String
myPrinter = Application.ActivePrinter

Sheets(Array("昇降機【青紙】(表面)", "昇降機【青紙】(裏面)")).Select
Sheets("昇降機【青紙】(表面)").Activate
Application.ActivePrinter = "LBP8710 on Ne02:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False

'プリンタを元に戻す
Application.ActivePrinter = myPrinter
End Sub
以上となります。
よろしくお願いいたします。

質問者からの補足コメント

  • うれしい

    回答ありがとうございます。
    早速ためしてみます。
    後ほど、ご連絡をさせて頂きます。

    No.1の回答に寄せられた補足コメントです。 補足日時:2025/02/07 09:09
  • うーん・・・

    回答ありがとうございます。
    マクロを実行すると
    実行時エラー1004:
    ActivePrinter メゾットは失敗しました Applicationオブジェクト と表示され
    コードの
    「Application.ActivePrinter = "LBP8710 on Ne02:"」が黄色く変色されています。
    よろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2025/02/07 10:15
  • うーん・・・

    回答ありがとうございます。
    早速試してみます。

    No.3の回答に寄せられた補足コメントです。 補足日時:2025/02/07 10:16
  • うれしい

    回答ありがとうございます。
    早速試してみます。

    No.4の回答に寄せられた補足コメントです。 補足日時:2025/02/07 12:31
  • 回答ありがとうございます
    確認してみます

      補足日時:2025/02/07 21:09

A 回答 (5件)

対象のプリンターはWindowsの設定・デバイスに存在しますか?



ある場合は Application.ActivePrinterプロパティは取得・設定が
可能なので 対象のプリンターをアクティブ(使用プリンター)にして
VBEのイミディエイトウィンドウで確認してみてください

?Application.ActivePrinter

上記をコピーしイミディエイトウィンドウに貼り付け、Enterキー押下
LBP8710 on Ne02:に該当するプリンター名が出力されると思います

無い場合はOS変更に伴いプリンターが正常にインストールできていない可能性があるので適正な対応を行ってください
この回答への補足あり
    • good
    • 0

「通常使うプリンタ」の設定をされていますでしょうか?「myPrinter = Application.ActivePrinter」というコードに出てくる「ActivePrinter」とは、もしかしたら「通常使うプリンタ」を指しているのではないでしょうか。

    • good
    • 1

No.3の方法で良さそうですが、下記ページも参考になると思います。


https://akashi-keirin.hatenablog.com/entry/2020/ …
ここに書いてあるWorksheet.PrintOutメソッドでうまくいったら、その状態でApplication.ActivePrinterの文字列を取得すればOK
この回答への補足あり
    • good
    • 0

不具合内容を書いてください。

この回答への補足あり
    • good
    • 0

Sub 青紙印刷()


Dim myPrinter As String

' 通常のプリンタを記憶
myPrinter = Application.ActivePrinter

' エラーハンドリング
On Error GoTo ErrorHandler

' 指定のプリンタに変更
Application.ActivePrinter = "LBP8710 on Ne02:" ' ← 環境に応じて適宜変更

' 印刷実行
Sheets(Array("昇降機【青紙】(表面)", "昇降機【青紙】(裏面)")).PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False

Cleanup:
' プリンタを元に戻す
Application.ActivePrinter = myPrinter
Exit Sub

ErrorHandler:
MsgBox "印刷処理中にエラーが発生しました。" & vbCrLf & "エラー番号: " & Err.Number & vbCrLf & "エラー内容: " & Err.Description, vbExclamation, "印刷エラー"
Resume Cleanup
End Sub
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A