ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

怎样用开发语言在word中建宏?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2002-4-5 16:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2002-4-5 16:47 | 显示全部楼层
1.选中Project,击右键或在选工具"Project属性"菜单,在"保护"选项卡中勾中选项及输入密码.(要退出Word再进入才生效) 2.出现对话框时,你要按"否"才能关闭VBA编辑器 3.在模块窗口的第1行插入API函数声明就行了,其他代码也是用插入行的方法,CreateEventProc方法是建立事件(New,Open,Close等)代码而已. 不会呀,即使有文档打开也不会出错的呀,出错提示是什么? Foxmail的图标可能是用API函数吧,具体用什么函数我也不大清楚,API函数我懂的也就几十个而已.
[此贴子已经被惊叹不已于2002-4-5 16:47:57编辑过]

TA的精华主题

TA的得分主题

发表于 2002-4-5 15:11 | 显示全部楼层
从右键菜单的选项和帮助的内容来看,应该不能把按钮的图标换成自己的图标,不知道有没有这方面的API函数,我找找看。 录制宏后,VBA会自动增加一个名为NewMacros的模块,你也可以用代码增加 Set st = Application.Templates("Normal.dot").VBProject.VBComponents.Add(vbext_ct_StdModule) st.Name = "NewMacros"

TA的精华主题

TA的得分主题

发表于 2002-4-5 09:08 | 显示全部楼层

嘿嘿,不好意思,一时胡涂了.

启动Word时是可以自动执行宏的,只要在任一模块内增加一个AutoExec宏就行了. 不让用户修改宏是可以手工设置的,不过好象没有编程的方法实现,不过可以用API实现. 下面的例子在Word启动时询问是否让用户修改宏,选择否将无法打开VB编辑器. Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long Sub AutoExec() yn = MsgBox("是否让用户修改宏?", vbYesNo) If yn = 7 Then Application.Templates("Normal.dot").VBProject.VBComponents("ThisDocument").CodeModule.CodePane.Show ret = GetForegroundWindow DestroyWindow ret End If End Sub Office XP我没有用过,出现这样的错误提示不知道是不是宏的安全级别设置的问题.

TA的精华主题

TA的得分主题

发表于 2002-4-5 09:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不知你所说的"存到记事本或者能取到的地方?"是否指另存为其他文件还是另存为Word文档?

TA的精华主题

TA的得分主题

发表于 2002-4-5 10:06 | 显示全部楼层
格式和图形全部被复制,把光标移到另一页或在另一文档,按粘贴按钮就可以看到了. 可以存为的格式包括Txt,Html,Rtf等,按"保存"按钮后,在"保存类型"可以看到.
[此贴子已经被惊叹不已于2002-4-5 10:06:53编辑过]

TA的精华主题

TA的得分主题

发表于 2002-4-4 15:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
下列代码判断是否已存在按钮,如存在就不增加,否则增加 Private Sub Document_Open() For i = 1 To Application.CommandBars(1).Controls.Count If Application.CommandBars(1).Controls(i).Parameter = "Good Day" Then existed = True Next If existed = False Then Set myBar = Application.CommandBars(1) Set myControl = myBar.Controls _ .Add(Type:=msoControlButton, Parameter:="Good Day") With myControl .FaceId = 3 .OnAction = "shellcal" End With myBar.Visible = True End If End Sub Sub shellcal() Shell "c:\winnt\notepad.exe", vbNormalFocus End Sub

TA的精华主题

TA的得分主题

发表于 2002-4-4 11:17 | 显示全部楼层
引用Microsoft Visual Basic For Application Extendsibility 5.3
[此贴子已经被惊叹不已于2002-4-4 11:17:38编辑过]

TA的精华主题

TA的得分主题

发表于 2002-4-4 12:06 | 显示全部楼层
这些事件都是在打开文档时才起作用,不打开文档启动Word不会执行这些事件,我也在寻找启动Word就自动执行宏的方法.在帮助中用关键字"自动执行"搜索,得出结果说在快捷方式的目标框加入开关就可以启动时执行宏,但这不是用程序的方法实现,看来还是得问问微软专家. 你是想在工具栏上加一个按钮还是加一条工具条?
[此贴子已经被惊叹不已于2002-4-4 12:06:01编辑过]

TA的精华主题

TA的得分主题

发表于 2002-4-4 10:33 | 显示全部楼层

在VB中新建一窗体,增加一个按钮,将窗体AutoRedraw属性设为True

Private Sub Command1_Click() Dim App As New Word.Application Dim doc As Word.Document App.Visible = True Set doc = App.Documents.Add With App.Templates("Normal.dot").VBProject.VBComponents("ThisDocument").CodeModule .DeleteLines 1, .CountOfLines '删除全部代码 .CreateEventProc "Open", "Document" .InsertLines 2, "Msgbox""打开文档就会自动运行." Me.Print "代码总行数:" & .CountOfLines Me.Print "第二行的内容为:" & .Lines(2, 1) Me.Print "事件代码所在行:" & .ProcBodyLine("Document_Open", vbext_pk_Proc) Me.Print "事件内代码总行数:" & .ProcCountLines("Document_Open", vbext_pk_Proc) Me.Print "第3行属于事件:" & .ProcOfLine(3, vbext_pk_Proc) Me.Print "事件名称所在行:" & .ProcStartLine("Document_Open", vbext_pk_Proc) Me.Print "通用声明的行数" & .CountOfDeclarationLines Me.Print "是否含有字符'Open':" & .Find("Open", 1, 1, 10, 20) .InsertLines 5, "'I Like VBA" .InsertLines 6, "'I also like VB " .ReplaceLine 5, "'We all like VBA" End With App.Templates("Normal.dot").Save '保存模板 doc.Close wdDoNotSaveChanges '退出,不保存文档 App.Quit Set App = Nothing End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-25 16:13 , Processed in 0.038890 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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