怎样写程序给OFFICE文档自动加上我的宏代码?

wushigang 2004-03-29 07:02:55
请问: 如何做一个VB程序,使它找开WORD/EXCEL文档时,自动给这个WORD/EXCEL加一些宏代码,以协助文件的操作,然后在关闭文件时将宏代码清除.恢复文件原状.
...全文
109 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxj6688 2004-05-13
  • 打赏
  • 举报
回复
yizia(椅子) :能不你经验给我介绍一下,OK??
wxj6688@tom.com
椅子 2004-05-11
  • 打赏
  • 举报
回复
这个我已经做过了,可以实现word到db,db到数据库,呵呵,不是word的所有内容哟,而是每个区域进自己的表和字段。
椅子 2004-05-11
  • 打赏
  • 举报
回复
都不对,你说的应该是用addin插件来实现
可以用vb来生成插件,就如同安装了acrobat后,在word里多了一个工具条,用来实现一些功能,这些功能是在你的插件来写的,而插件的核心代码其实就是宏代码。
KitSdk 2004-05-09
  • 打赏
  • 举报
回复
peiweiwei(无状态对象) 为什么不贴出来?
lutin111 2004-05-07
  • 打赏
  • 举报
回复
要写入的程序代码可先验证,我是把程序代码放入文字文件中,
PhilexPei 2004-05-07
  • 打赏
  • 举报
回复
to:lutin111() , KitSdk(kitsdk)
你们实现了添加代码,但如何保证代码的正确性呢,能在代码添加后预编译吗?
假如能够检查到编译错误并作出反应就应该是很完美的了!
PhilexPei 2004-05-07
  • 打赏
  • 举报
回复
自定义菜单我有现成代码,是用接管宏实现的,这样可以省去每次加载所需时间。
KitSdk 2004-05-06
  • 打赏
  • 举报
回复
真搞笑 !!!!!
下面是在vb中的代码 至于怎么用代码增加工具栏菜单等等自己去琢磨吧有时间 我再写!

这是要加入的vba 函数 功能是关闭痕迹
Public Function vbaCloseRev() As String
Dim vbaCloseRevFunction As String
vbaCloseRevFunction = "Public Sub CloseRev()" + vbCrLf
vbaCloseRevFunction = vbaCloseRevFunction + "With ActiveDocument" + vbCrLf
vbaCloseRevFunction = vbaCloseRevFunction + ".TrackRevisions = False" + vbCrLf
vbaCloseRevFunction = vbaCloseRevFunction + ".PrintRevisions = False" + vbCrLf
vbaCloseRevFunction = vbaCloseRevFunction + ".ShowRevisions = False" + vbCrLf
vbaCloseRevFunction = vbaCloseRevFunction + "End With" + vbCrLf
vbaCloseRevFunction = vbaCloseRevFunction + "End Sub" + vbCrLf
vbaCloseRev = vbaCloseRevFunction
End Function


'初始化形成VBA模块
Dim MacroStr As String
MacroStr =vbaCloseRev()
im mFile As String
Dim fso As New Scripting.FileSystemObject
mFile = "c:\MacroTempFile.txt"
fso.CreateTextFile(mFile, True).Write MacroStr '保存vba代码临时文件


Dim c As Integer
Set oProject = oDoc.VBProject
Set oComponents = oProject.VBComponents
c = oComponents.Count '获取当前文档中的vba模块数目
If c < 2 Then
Set oComponent = oComponents.Add(vbext_ct_StdModule) '如果没有模块新建一个模块
Set oModule = oComponent.CodeModule
oModule.AddFromFile mFile '用文件填充新模块
Else
'如果已经存在一个模块 清除模块内的代码
'然后再重新填充代码
With oDoc.VBProject.VBComponents.Item(1).CodeModule
.DeleteLines 1, .CountOfLines
End With
oDoc.VBProject.VBComponents.Item(1).CodeModule.AddFromFile mFile

End If
fso.DeleteFile mFile '删除临时文件

Set fso = Nothing
lutin111 2004-05-03
  • 打赏
  • 举报
回复
先要在EXCEL宏安全性的选项内,勾选信任VBA存取项目
Sub test1()
Dim a As Workbook
Set a = Workbooks.Open("d:\test.xls")
Dim code As String
code = code & "Private Sub Command2_Click()" & vbCrLf
code = code & "MsgBox ""有趣吧?"", 0, "":P""" & vbCrLf
code = code & "End Sub" & vbCrLf
With a.VBProject.VBComponents("Sheet1").CodeModule
NextLine = .CountOfLines + 1
.InsertLines NextLine, code
End With
Tooler 2004-05-03
  • 打赏
  • 举报
回复
我也需要,能告我吗?
KitSdk 2004-05-02
  • 打赏
  • 举报
回复
我知道用VB怎么做 给我发邮件 我可以告诉你们
kitsdk@163.com
wushigang 2004-04-29
  • 打赏
  • 举报
回复
总之,我想用程序向已经存在的EXCEL或WORD文件中写入宏代码,怎么才能做到这一点?
PhilexPei 2004-04-27
  • 打赏
  • 举报
回复

参数需要从VB传递到宏里面-》通过ini文件或者注册表啊,或者直接写word文档的隐蔽处,这样不是很简单吗
档的事件用加载宏得不到-》你可以通过接管宏啊,让用户点击某个集成的菜单。

KitSdk 2004-04-20
  • 打赏
  • 举报
回复
你的意思用你程序中 用vba填充到你的word中 我知道 给我发邮件 我告诉你
websphere@126.com
ostream 2004-04-03
  • 打赏
  • 举报
回复
"……我有些参数需要从VB传递到宏里面……"
这个思路确实好,我也曾这样想过,只是没实现
wushigang 2004-04-01
  • 打赏
  • 举报
回复
其实我的本意是想在用户端有一个VB实现的集成程序,其中一项功能是通过VB的游览器控件访问传统的WEB公文流转系统。该公文流转系统将WORD文件存储在数据库,但不具有在线编辑批注等功能,所以我想在用户点击该WORD附件的时候,权限低的就只用IE打开,权限高的就启动WORD打开该数据库中的文档,此时就要把一些宏代码附加到该WORD文档中,于是用户就可以在WORD界面内进行任意操作,最后能够保存到服务器的数据库中。
这样的好处是把WORD的所有功能都能利用,同时利用加载宏或附加的宏代码为用户提供其它的功能,比如印章,批注。。。。
光用加载宏好像比较困难。一来我有些参数需要从VB传递到宏里面,二来文档的事件用加载宏得不到。
PhilexPei 2004-04-01
  • 打赏
  • 举报
回复
加载宏可以做到模块化。从楼主的要求看他需要的只是辅助的代码,我想应该能够满足要求。

OFFICE之门 2004-03-30
  • 打赏
  • 举报
回复
在VB中打开XLA加载宏就可以了

例:
Workbooks.Open Filename:="F:\VBA-代码汇粹\人民币大写.xla"
wushigang 2004-03-30
  • 打赏
  • 举报
回复
加载宏是有很大帮助,但不见得能全部解决问题。
比如我想在我的文档被关闭时,触发某个功能,加载宏就做不到吧。
加载宏可以做成菜单供用户使用,一般需要用户去主动调用。但有些功能需要在文档的事件下自动执行的功能,加载宏就监测不到文档的事件,于是实现不了。
所以一方面要用加载宏,一方面仍要把某些宏代码写在文档里(主要是事件处理)。
看是不是有办法,条件是不是太苛刻了。
vansoft 2004-03-30
  • 打赏
  • 举报
回复
关注

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧