エクセルで特定ファイルをドットプリンタで出力する方法

このQ&Aのポイント
  • エクセルファイル毎にプリンタを設定することは可能か?特定ファイルをドットプリンタで出力する方法
  • 複数のエクセルファイルを立ち上げたまま、特定ファイルをドットプリンタで出力する際に、他のファイルのプリンタ設定が変わらない方法
  • マクロでドットプリンタで出力後にプリンタをレーザープリンタに設定する方法
回答を見る
  • ベストアンサー

エクセルについて質問です

エクエルファイル毎にプリンタを設定する事は可能でしょうか? 通常使うプリンタはレーザープリンタに設定しています。 特定のファイルのみドットプリンタで出力をします。 複数のファイルを立ち上げたまま、特定ファイルをドットプリンタで出力すると、 他に立ち上がっていたファイルも印刷時にプリンタを設定し直さないと ドットプリンタのままになっています。 こうならない為にはどうしたらいいでしょうか? マクロで「ドットプリンタで出力後プリンタをレーザープリンタに設定」と 登録をして、自分のPCでは出来たんですが、 社内の別PCで実行してみるとエラーが出てしまいます。 何か良い方法はありませんでしょうか?

  • scktr
  • お礼率25% (1/4)

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

使用するプリンタの選択はエクセルアプリケーションの設定で,ブックには保存できません。 ご質問の通り,ふつーにエクセルでブックを開くと標準のプリンタでまずは印刷する設定になります。 というワケでマクロの中でプリンタを変更してから印刷するわけですが, >社内の別PCで実行してみるとエラーが出てしまいます。 ActivePrinter = "ネットワークプリンタ名 on NExx:" の類の命令を書いて行う事ができます。ところが問題は,この最後NExxの数字がパソコンによってバラバラに違うことです。 ただ今回のご質問は「ドットプリンタで出力後にプリンタの設定を元に戻す」なので,割と単純に sub sample1()  dim s  s = application.activeprinter  activeprinter = "ドットプリンタ on LPT1" ’とかなんとか  activeworkbook.printout 'ドットプリンタでとりあえず印刷  application.activeprinter = s end sub てな具合に,ドットプリンタで印刷後に元に戻してやれば十分かと思われます。 #もう一つ次のステップのマクロの組み方として,ドットプリンタで印刷する必要があるブックに「workbook_beforeprint」イベントプロシジャを組み込み,そこで上述のようなマクロを仕込んで印刷後即座に元のプリンタに自動で戻してしまうような方法も考えられます。 「印刷するマクロ」を意識せず,ただ印刷するだけで一連の処理が行えます。 イベントプロシジャの書き方作り方についてはVBAのヘルプにも十分説明がありますし,時間のあるときにもでもworkbook_beforeprintでちょこっとぐぐってみると沢山資料はヒットしますので確認してみてください。 #余談ですがご自分で書いたマクロがエラーを出して動かないときは ●実際にエラーを出したそのマクロの記述 ●その時に実際にどこの行でどんなエラーが起きたのか  といった具体的な症状を手抜きせずにご相談に書いて投稿してみると,問題の所在やより具体的な解決策もすぐによせられますよ。

scktr
質問者

お礼

回答ありがとうございました! 今後質問する際は、もっと詳細に書くようにします。 ありがとうございました。

関連するQ&A

  • ACCESSのマクロでのプリンタ設定

    業者に作ってもらった、社内DB→ACCESSで読んで住所ラベルなどを作成する、ACCESSのマクロがあります。 特定のプリンタの指定がされているようなのですが、そのプリンタが古いので変えたいと思います。そのマクロで印刷実行をすると、特定のプリンタを接続していない(あるいは認識していない)と、「プリンタが変更されている」と出てきて、「現在の通常のプリンタにしますか?」と聞いてきて、その現在のでの印刷はできないことはないのですが、またそこからさらに設定を変えないといけないので面倒です。 それで、そのように特定のプリンタを指定して聞いてくる、初期設定自体を変えたいと思います。 で、マクロだとどの辺にそれが書かれているのでしょうか。それともマクロには書かれていないのでしょうか。自分では探してみたのですが、見つかりません。 いちおう、一覧の部分貼り付けさせていただきます。

  • エクセルを選択して開き印刷するマクロ

     お世話になっております。 タイトル通りのマクロの作成をしているのですが、行き詰ってしまい質問させていただきました。 説明させていただきますと、、 実行し、複数のエクセルbookを選択し開くとシートを全選択し通常使うプリンタで印刷をする。というマクロなんですが、改善していきたい事がありまして、助言をいただきたく思っております。 1.複数選択して開いても印刷されるのは開いた後アクティブになっているbookのみ。これを全て開いたbook印刷にしたい。 2.現在は通常使うプリンタで印刷するようにしていますが、複数選択し開いた時に始めの1回だけプリンタの設定画面になるようにしたい。 3.開いて印刷し閉じるだけなのにリンクなどが残っており、「保存しますか?」という文章が出るときがありますが、それを聞かれないように保存せずに閉じる。と自動的に実行してくれる。 2と3は、出来ればそうなってほしいという事なので、最重要は1番です。120個のエクセルを(1つあたりの容量は少ない)印刷しなければならないので困っております。一気に120個印刷かけるわけではなく10個位を分けてマクロ実行で印刷しようと思っております。 コードを載せさせて頂きますので、「ココをこう直せば出来るよ」など簡単な事でも結構ですのでアドバイスよろしくお願いいたします。 ----------------------------------------------------------- Sub 複数のファイルを選択して開く_エクセル版() '複数のファイルを選択する例 Dim vntFileName As Variant Dim vntGetFileName As Variant 'ファイルを開くダイアログを開きます vntFileName = _ Application.GetOpenFilename( _ FileFilter:="エクセルファイル(*.xls),*.xls" & _ ",CSVファイル(*.csv),*.csv" _ , FilterIndex:=1 _ , Title:="印刷するファイルを選択" _ , MultiSelect:=True _ ) 'ファイルが選択されているとき(vntFileNameが配列型)は '選択した全てのファイルをWorkbooks.Openメソッドを使い開きます。 If IsArray(vntFileName) Then For Each vntGetFileName In vntFileName Workbooks.Open vntGetFileName Worksheets.Select 'シート全選択 Next ActiveWindow.SelectedSheets.PrintOut Copies:=1 '通常設定のプリンタで出力 End If ActiveWindow.Close 'ファイルを閉じる End Sub

  • プリンタ一覧を取得

    社内で複数のプリンタがあります、"複合機""ドットプリンタ""再生紙用プリンタ"などと名前を各クライアントに統一してつけて設定してあります、エクセルのVBAで特定のシートのみ"ドットプリンタ"で印刷するために strAPtr = Application.ActivePrinter で一旦通常のプリンタをバッファリングしておき Application.ActivePrinter = "ドットプリンタ" として印刷をかけ Application.ActivePrinter = strAPtr で戻すということをしたいのですが このドットプリンタがクライアントPCによって ActivePrinter = "ドットプリンタ on Ne02:"になったり ActivePrinter = "ドットプリンタ on Ne00:"になったりクライアントによっては ActivePrinter = "Ne00:のドットプリンタ"になったりして確定できません、 WinAPIを使ってプリンタの一覧の取得・・・という方法がありそうですがエクセルVBAで出来るのでしょうか、願わくばAPIを使わないで実現したいのですが知恵を貸してください

  • エクセルマクロ印刷時にプリンタを指定できますか?

    エクセル2002を使用しています。VBAはまったくわかりません。 マクロの自動登録で印刷を記録すると、通常使うプリンタから 出力されるようですが、LANでプリンタ複数使用可能な環境です ので、いちいち通常使うプリンタを変更するのではなく、マクロ 実行時にプリンタを選択したく思います。  因みに、以下のマクロはSheet1に値を入力し、Sheet1の値をコピー したSheet2を印刷するというマクロです。このマクロのどの部分に コードを付け加えればプリンタをこのマクロ実行時に選択可能でしょうか? もしくはマクロではプリンタを選択できないのでしょうか? どうぞよろしくお願いいたします。 ****************************************************************** Sub 印刷() Sheets("Sheet2").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets("Sheet1").Select End Sub *******************************************************************

  • エクセルで作成した文書の印刷、テンプレートごとに

    エクセルでテンプレートをいろいろ作り使用しています。 印刷について質問です。 2台のプリンターをLAN接続で使用しています。 印刷する時、通常はレーザー印刷してますが、 宅急便伝票はドットプリンターで、印刷するので プリンターを選びなおします。 このテンプレートの時はこのプリンターで印刷、 という設定はできるのでしょうか? ちなみにXPでオフイスは2007です。

  • エクセルで印刷するプリンタを自動的に変更したい

    ネットワーク接続のプリンタが2台あります。 このうち片方のプリンタは、あるエクセルファイル専用出力にしたいのです。従いまして、当該エクセルファイルを印刷するときにだけ、自動的にそちらのプリンタから出力させるように制御したいのです。マクロか何かでそのような設定はできるのでしょうか。

  • EXCELのプリンタ設定について

    EXCEL2000/2003を利用しているのですが、ファイルによってA3(レーザー)とA4(インクジェット)のプリンターを使い分けている為毎回プリンタ設定をする必要があります。 設定を忘れる通常使うプリンター設定されているプリンターから印刷されるようです。 ファイルに前回印刷したプリンタを記憶させることは出来ないのでしょうか? 前回の設定を覚えていてくれる時も有るような気もするのでで、余計に印刷設定の記憶ロジックが理解できずもやもやしています。 ご存じの方が見えましたら教えてくださいませ。

  • 画像が印刷されません

    JPEGのデータを貼り付けたファイルを印刷しようとしているのですが、なぜか、Win2000のマシンだけ、画像が印刷されません。 ネットワークにつながれた他のWin98などでは、画像もきちんと印刷されるのですが。 OS側で設定する事などあるのでしょうか? ちなみにプリンタですが、社内で、ネットワークにつながったモノクロのレーザープリンタがあり、それを共有しています。 つなげ方は、特定のPCにつながったプリンタを共有しているのではなく、10BASE-Tでハブからつないでいます。 宜しくお願いします。

  • エクセル2010で起動時にプリンター指定

    エクセル2010で、特定のブックを開いた時にプリンターを指定したいのですが、どの様にすればよいのでしょうか? いろいろとネット上をさがしましたが、結局どうすれば良いのか分からないので困っています。 特定のブックを開いた時に、PCで通常使う設定になっているプリンターから、違うプリンターに設定を変更するマクロについて、ご教示いただきたいのですが、よろしくお願いします。

  • ネットワークプリンター ? 

    こんにちは。 ある症状がでますが対応に困っていますのでどなたかアドバイスください。 私のオフィスでは複数台のパソコンをネットワークにしています。 (ハブを使って) OSは2000とXP PROの2種類あります。そのネットワーク上でレーザープリンターとドットプリンター、普通のプリンターを共有させています。 OS2000のPCのEXCEL 2003を使って 09th/JUNEと入力してドットプリンターで印刷すると、09th/ UNEとなります。 印刷プレビューをみたら異常はありません。 JとYの2つがドットプリンターでは印刷されませんがレーザープリンターや普通のプリンターではきちんと印刷されます。 このファイルをXP PROに転送して同じように作業したら、xp proからはドットプリンターは正常に動作します。 これは何が問題なのでしょうか? ネットワークの2000のPCは全て同じ症状です。XPは全て正常です。 これは愛称の問題なのでしょうか? 先週までは2000でも正常だったのですが、何かのきっかけでおかしくなってしまいました。 どなたかアドバイスお願いします。

専門家に質問してみよう