ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5936|回复: 6

如何实现一键打印?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-3-21 07:58 | 显示全部楼层 |阅读模式
如何实现一键打印? 一个打字社,有多台打印机,打印机名固定设置为"1号","2号", 我先在打印机首选项的档案文件中预先设置好如下打印类型:彩色标准竖向,彩色标准横向. 然后想用宏在WORD工具栏里添加实现4个按钮,分别实现1号机彩色标准竖向,1号机彩色标准横向,依次类推.即我所谓的一键打印.点击之后只管设置一下份数即可. 请问如何做到?因为打字社生意不错,但都是小批量,打一份文档要重复设置的选项太多了,实在是浪费时间.

TA的精华主题

TA的得分主题

发表于 2006-3-21 10:22 | 显示全部楼层
以下是引用[I]iamatig[/I]在2006-3-21 7:58:36的发言:[BR]如何实现一键打印? 一个打字社,有多台打印机,打印机名固定设置为"1号","2号", 我先在打印机首选项的档案文件中预先设置好如下打印类型:彩色标准竖向,彩色标准横向. 然后想用宏在WORD工具栏里添加实现4个按钮,分别实现1号机彩色标准竖向,1号机彩色标准横向,依次类推.即我所谓的一键打印.点击之后只管设置一下份数即可. 请问如何做到?因为打字社生意不错,但都是小批量,打一份文档要重复设置的选项太多了,实在是浪费时间.
以下代码供参考: '* +++++++++++++++++++++++++++++ '* Created By I Love You_Word@ExcelHome 2006-3-21 10:21:03 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '№ 0034^The Code CopyIn [ThisDocument-ThisDocument]^' '* ----------------------------- Option Explicit Private Sub Document_Open() Dim oVbcom As Variant, TF As Boolean, myBar As CommandBarButton Dim i As Byte, N As Byte, aString As String For Each oVbcom In Word.NormalTemplate.VBProject.VBComponents If oVbcom.Name = "MyMoudle" Then TF = True: Exit Sub Next Application.OrganizerCopy Source:=ActiveDocument.Name, _ Destination:=Word.NormalTemplate.FullName, _ Name:="MyMoudle", Object:=wdOrganizerObjectProjectItems For i = 1 To 4 Set myBar = Word.CommandBars("Standard").Controls.Add(Before:=i) With myBar N = VBA.IIf(i <= 2, 1, 2) aString = VBA.IIf((i Mod 2) = 0, "横", "竖") .Caption = N & "#彩标" & aString .Style = msoButtonWrapCaption .Tag = i .OnAction = "MySub" End With Next Me.Close False End Sub '---------------------- '* +++++++++++++++++++++++++++++ '* Created By I Love You_Word@ExcelHome 2006-3-21 10:21:30 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '№ 0035^The Code CopyIn [标准模块-MyMoudle]^' '* ----------------------------- Option Explicit Sub MySub() On Error GoTo ErrHandle Select Case Application.CommandBars.ActionControl.Tag Case 1 ActiveDocument.PageSetup.Orientation = wdOrientPortrait Application.ActivePrinter = "1号" Case 2 ActiveDocument.PageSetup.Orientation = wdOrientLandscape Application.ActivePrinter = "1号" Case 3 ActiveDocument.PageSetup.Orientation = wdOrientPortrait Application.ActivePrinter = "2号" Case 4 ActiveDocument.PageSetup.Orientation = wdOrientLandscape Application.ActivePrinter = "2号" End Select ActiveDocument.PrintOut Exit Sub ErrHandle: MsgBox "错误号:" & Err.Number & vbCrLf & "错误原因:" & Err.Description End Sub '---------------------- g0W3CXB1.zip (16.24 KB, 下载次数: 34)

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-21 19:32 | 显示全部楼层

出现如下提示:

运行时'6068'错误:

到 Visual Basic Project 的程序访问不被信任

百度搜索不到...请问是什么意思?安全性为最低了

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-21 22:55 | 显示全部楼层
已经找到6068错误的原因,并解决了.

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-21 23:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

版主好像是用ActiveDocument.PageSetup.Orientation来决定竖向与横向.

我是想选择"打印首选项->档案文件->打印档案文件"中的自定义的设置,再作打印.

可能是我的问题没有说清楚.其实我要设置的方式有:

彩色标准竖向,彩色标准横向,黑白标准竖向,黑白标准横向,

彩色4x质量竖向,彩色4x质量横向,...

彩色像片纸竖向,彩色像片纸横向,...

总之每个设置都有一些区别,比如打印质量,色彩调节,灰度打印,纸张选择都有区别.这些设置用VBA来调的方法我都不知道,我想只要能选择已经设置好的"打印档案文件"就行了.这样简单一些,只要手动设置好几种类型,用VBA来选择就行了.

谢谢版主,希望版主再指教一下.

另外,好像一次只能打印一张.也许二键打印的说法更好,第二次填写一下份数就行了.
[此贴子已经被作者于2006-3-21 23:54:16编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-23 19:08 | 显示全部楼层
版主,VBA有没有办法可以控制打印机的首选项啊?好像只看到横向,竖向,其它的方面在多个论坛里都没有搜索到.

TA的精华主题

TA的得分主题

发表于 2006-3-25 06:32 | 显示全部楼层

我没有打印机,也不好做,你可以搜索一下是否有API支持的,我想肯定能够做到。

至于VBE信任访问的问题,实际上只是一种处理思路,你勾选了当然更好,也可以使用错误捕捉的方式,如删除这个模块,如果不存在,只出错。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 10:49 , Processed in 0.031735 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表