過去ログ

                                Page      60
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼通常使うプリンタを設定するには?  ちょび 02/9/10(火) 10:07
   ┗Re:通常使うプリンタを設定するには?  JuJu 02/9/10(火) 17:07
      ┗Re:通常使うプリンタを設定するには?  ちょび 02/9/10(火) 17:44
         ┗Re:通常使うプリンタを設定するには?  JuJu 02/9/10(火) 21:17
            ┗Re:通常使うプリンタを設定するには?  ちょび 02/9/10(火) 21:53

 ───────────────────────────────────────
 ■題名 : 通常使うプリンタを設定するには?
 ■名前 : ちょび
 ■日付 : 02/9/10(火) 10:07
 -------------------------------------------------------------------------
   おはようございます。ちょびです。
また、質問が生まれてしまったので投稿させてもらいました。m(_ _)m

  ActiveWindow.SelectedSheets.PrintOut Copies:=1

上の記述だと(たぶん)アクティブなプリンタから印刷されることに
なりますよね?
これを、「通常使うプリンタ」から印刷させるようにするには
どうしたらいいのか、ご存知の方よろしくお願いします。
 ───────────────────────────────────────  ■題名 : Re:通常使うプリンタを設定するには?  ■名前 : JuJu <juju-bbs@su-u.com>  ■日付 : 02/9/10(火) 17:07  -------------------------------------------------------------------------
   ちょびさん、こんにちはぁ

>上の記述だと(たぶん)アクティブなプリンタから印刷されることになりますよね?

はい、ActivePrinterで印刷されます。

>これを、「通常使うプリンタ」から印刷させるようにするには
>どうしたらいいのか、ご存知の方よろしくお願いします。

Excelを起動したときは、ActivePrinterは「通常使うプリンタ」ですよね。
途中で変えたときの対策かな^^

あまりいい方法とはいえないかもしれませんが、Excelをもう1個起動してそのActivePrinterを取得してみてはどうでしょうか。
(APIを使うより簡単かも)

こんな感じ
 Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter

ではではぁ
 ───────────────────────────────────────  ■題名 : Re:通常使うプリンタを設定するには?  ■名前 : ちょび  ■日付 : 02/9/10(火) 17:44  -------------------------------------------------------------------------
   JuJuさんありがとうございます。
もうちょっと教えてもらってもいいですか?

>Excelを起動したときは、ActivePrinterは「通常使うプリンタ」ですよね。
>途中で変えたときの対策かな^^

そうなんです。
コマンドボタンを2つ作成し、ひとつはPDFWriterからファイル出力にしたのです。
次のような感じです。

Private Sub CommandButton1_Click()
' 計算結果をPDFに出力
  
  Application.ActivePrinter = "Acrobat PDFWriter on LPT1:"
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
    "Acrobat PDFWriter on LPT1:"
End Sub

上の

ActivePrinter:= _
    "Acrobat PDFWriter on LPT1:"
の部分って、アクティブプリンタをPDFWriterにするっていうことでしょうか?
だとすると、教えていただいた

Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter

 ↑これを、変わりに書けば、PDFWriterで出力した後、アクティブなプリンタを
通常使うプリンタに戻してくれることになるのかなぁ???

それとも、もうひとつのボタンに次のように書けばいいんでしょうか?

Private Sub CommandButton2_Click()
' 計算結果を通常のプリンタで出力
  Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter
  ActiveWindow.SelectedSheets.PrintOut Copies:=1

End Sub

くどい質問になってしまいましたが、助けていただけますでしょうか?
よろしくお願いします。m(_ _)m
 ───────────────────────────────────────  ■題名 : Re:通常使うプリンタを設定するには?  ■名前 : JuJu <juju-bbs@su-u.com>  ■日付 : 02/9/10(火) 21:17  -------------------------------------------------------------------------
   ちょびさん、こんにちはぁ

>Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter
> ↑これを、変わりに書けば、PDFWriterで出力した後、アクティブなプリンタを
>通常使うプリンタに戻してくれることになるのかなぁ???

PDFWriterで出力した後ですので、PrintOutメソッドのあとに入れます。

Private Sub CommandButton1_Click()
' 計算結果をPDFに出力

  ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= "Acrobat PDFWriter on LPT1:"
  Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter
End Sub

もし、もとのプリンタに戻すというイメージでしたら、

Private Sub CommandButton1_Click()
  Dim strPrinter As String

  ' 今使っているプリンタを保存
  strPrinter = Application.ActivePrinter
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
    "Acrobat PDFWriter on LPT1:"
  ' 元のプリンタへ戻す
  Application.ActivePrinter = strPrinter
End Sub

でも良いかもしれませんね。

>それとも、もうひとつのボタンに次のように書けばいいんでしょうか?
>Private Sub CommandButton2_Click()
>' 計算結果を通常のプリンタで出力
>
>  Application.ActivePrinter = CreateObject("Excel.Application").ActivePrinter
>  ActiveWindow.SelectedSheets.PrintOut Copies:=1
>End Sub

でも良いですが、
PrintOutメソッドの、引値ActivePrinter を使って、こういう書き方もできます。

Private Sub CommandButton2_Click()
' 計算結果を通常のプリンタで出力
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= CreateObject("Excel.Application").ActivePrinter
End Sub

ではではぁ
 ───────────────────────────────────────  ■題名 : Re:通常使うプリンタを設定するには?  ■名前 : ちょび  ■日付 : 02/9/10(火) 21:53  -------------------------------------------------------------------------
   JuJuさんこんばんは。

回答ありがとうございます。

なんとなくわかってきた気がします。(^^ゞ
自宅のため、肝心のファイルが無いのですぐに実験できないのですが
明日、早速会社で試してみたいと思います。

知りたかった以上のことが勉強できた感じでとても嬉しいです。
おかげで、似たような記述を繰り返していた箇所もわかりやすく
書き直せるような気になってます。

また、お世話になると思いますがよろしくお願いします。
ほんとにありがとうございました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 60