- 締切済み
access2003 レポートごとにプリンター指定
win XP access2003 accessで70種類のレポートを使い分けています。レポートごとに異なるプリンターを指定して印刷してます。 ページ設定でプリンターを設定できますが、レポートの種類が多いため管理が大変です。 簡単な管理法がないでしょうか? たとえば、テーブルにレポート名、プリンター名、用紙サイズ といったようにして、マクロ(VB)なんかは無理でしょうか? よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
リンクの紹介だけでゴメンね http://www.accessclub.jp/bbs5/0046/vba15265.html と http://www.accessclub.jp/bbs5/0016/vba4586.html を読んでみれば参考になるかと思います。 考え方としては 現在のインストールされているプリンターの一覧の取得。 Dim Prt As Printer Dim Rpt As Object For Each Prt In Application.Printers Debug.Print "deviceName= " & Prt.DeviceName, "Port= " & Prt.Port Next ここから先は未確認です。 プリンタを変更した際に、旧プリンタでの設定を覚えていてくれれば リンク先のコードを少し手直しすれば出来るかと思います。 印刷設定がご破算になってしまうなら、旧プリンタでの設定を一時的に変数に収めるか テーブルに保存するかしてから 変更処理を行う必要があります。 With Reports("レポート名").Printer Debug.Print .DeviceName, _ .BottomMargin, _ .ColorMode, _ .ColumnSpacing, _ .Copies, _ .DataOnly, _ .DefaultSize, _ .DriverName, _ .Duplex, _ .ItemLayout, _ .ItemsAcross, _ .ItemSizeHeight, _ .ItemSizeWidth, _ .LeftMargin, _ .Orientation, _ .PaperBin, _ .PaperSize, _ .Port, _ .PrintQuality, _ .RightMargin, _ .RowSpacing, _ .TopMargin Debug.Print "" End With 以上、部分的な回答です。 進めてゆくのなら、ファイルのバックアップを取ってからに。 私からはここまでです。
- nicotinism
- ベストアンサー率70% (1019/1452)
Access2010の場合ですが レポートをデザインビューで開いて、ページ設定のページタブ中の その他のプリンターを選択してプリンターの設定で 既存のプリンターを選び、種々の設定を行ってレポートを上書き保存すれば レポートは設定を覚えてくれます。 これはAccess2000や2007でも同様です。 この事ではないのかな。 VBAならPrinter オブジェクトで設定する方法もありますけど。 http://support.microsoft.com/kb/839378/ja
お礼
ありがとございます 既存のプリンターを選び、種々の設定を行ってレポートを上書き保存すれば レポートは設定を覚えてくれますね。これは実行しています。 プリンターの変更がある場合などは、レポートの数が多いため簡潔な方法をお聞きしたかったのです。 もう少し知恵をお貸しください。
お礼
ありがとうございます。 VBは詳しくないので少し意味不明ですが、コピーして試してみます。