ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]如何用vba代码直接勾选宏安全里信任对vb项目的访问?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-1-9 11:32 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

如题

我是用delphi的oleContainer内嵌的WORD(我想excel应该也一样),我在delphi里直接往WORD文档里添加一个按钮并为按钮添加vba代码,这个就需要勾选宏安全里的信任对vb项目的访问,但我不想让用户手动勾选这个,而是想用vba或delphi来想保存用户原先的设置,然后勾选这个,在程序退出的时候恢复用户原先的设置,可是我在WORD里想录制勾选这个的宏,却发现根本就录制不到……(我在delphi里对WORD的控制基本都靠录制的宏代码……,录制不到宏我都不知道何处下手……),请问vba里如何来处理这个?

还有delphi往WORD文档里添加的vba代码只能给在WORD里起作用,能不能传值回我的程序?

[此贴子已经被作者于2007-1-9 11:43:13编辑过]

TA的精华主题

TA的得分主题

发表于 2007-1-9 11:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-1-9 11:44 | 显示全部楼层
我对vba不太熟悉,请问什么是F5/6?具体vba代码是什么?

TA的精华主题

TA的得分主题

发表于 2007-1-9 14:08 | 显示全部楼层

操作注册表,VBA代码:

Sub macro1()'全选
Dim wsh As Object, v As String
v = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\"
Set wsh = WScript.CreateObject("Wscript.Shell")
wsh.RegWrite v & "Level", 2, "REG_DWORD"
wsh.RegWrite v & "DontTrustInstalledFiles", 0, "REG_DWORD"
wsh.RegWrite v & "AccessVBOM", 1, "REG_DWORD"
Set wsh = Nothing
End Sub

Sub macro2()'不选
Dim wsh As Object, v As String
v = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & Application.Version & "\Excel\Security\"
Set wsh = WScript.CreateObject("Wscript.Shell")
wsh.RegWrite v & "Level", 2, "REG_DWORD"
wsh.RegWrite v & "DontTrustInstalledFiles", 1, "REG_DWORD"
wsh.RegWrite v & "AccessVBOM", 0, "REG_DWORD"
Set wsh = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2007-1-9 14:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
两位版主都是强人,佩服!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-1-9 14:54 | 显示全部楼层
对注册表的操作是不是要关闭WORD再重启有效,还是直接有效?

TA的精华主题

TA的得分主题

发表于 2007-1-9 15:32 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-1-9 16:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
……,改注册表我不如直接在delphi里做……,谢谢,我过一会去试一试

TA的精华主题

TA的得分主题

发表于 2007-7-5 17:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-1-25 13:59 | 显示全部楼层
我的方法是用vb先改注册表然后运行宏。
Private Sub Command1_Click()
'修改注册表,使宏安全中“信任对于‘visual basic项目’的访问”打钩
Set d = CreateObject("Wscript.Shell")
d.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Security\AccessVBOM", "1", "REG_DWORD"
'将宏代码以string的形式保存在ss变量里
Dim ss As String
ss = "Sub ABC() " & vbCrLf & _
"msgbox " & Chr(34) & "通过vb创建的宏" & Chr(34) & vbCrLf & _
"End Sub"
'创建一个excel
Set a = CreateObject("excel.application")
Set b = a.Workbooks.Add
a.Visible = True
'创建模块
Dim NewxlsModule As Object
Set NewxlsModule = b.VBProject.VBComponents.Add(1)
' 添加宏
NewxlsModule.CodeModule.AddFromString ss
'运行宏
a.Application.Run "ABC"
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-6 09:28 , Processed in 0.033992 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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