vba调用AutoItX3的Activex控件,实现doc2Html源码

说明,这是自己录制的一个宏,然后调用AutoIt的Activex控件
功能:实现自动将当前的word文档导出成html代码的功能 导出的html默认复制到了剪切板
doc2Html的宏代码下载
autoitX3 ActiveX DLL版本号:3.3.6.1(32位系统autoitX3 的Activex控件安装和注册)
效果演示截图:
2011021219083554.gif
vba宏的源代码
 
   
Sub doc2Html()

' 主要用来将word文档自动转化成html文档,并且复制html代码
'
doc2Html Macro
'
前尘光明制作
'
' 将文档保存成筛选的html
ActiveDocument.SaveAs FileName: = " ddd.htm " , FileFormat: = _
wdFormatFilteredHTML, LockComments:
= False , Password: = "" , AddToRecentFiles _
:
= True , WritePassword: = "" , ReadOnlyRecommended: = False , EmbedTrueTypeFonts _
:
= False , SaveNativePictureFormat: = False , SaveFormsData: = False , _
SaveAsAOCELetter:
= False
' 设置显示模式为页面模式
If ActiveWindow.View.SplitSpecial = wdPaneNone Then
ActiveWindow.ActivePane.View.Type
= wdPrintView
Else
ActiveWindow.View.Type
= wdPrintView
End If
Dim oAutoIt
Set oAutoIt = CreateObject ( " AutoItX3.Control " ) ' 调用AutoItV3的ActiveX控件,创建实例
oAutoIt.Run ( " notepad ddd.htm " ) ' 使用记事本打开ddd.htm文件
oAutoIt.WinActive ( " [Class:Notepad] " ) ' 激活记事本
oAutoIt.WinWaitActive ( " [Class:Notepad] " ) ' 等待记事本激活
oAutoIt.Send " ^a " ' CTRL+A组合键——全选
oAutoIt.Sleep 200
oAutoIt.Send
" ^c " ' CTRL+C组合键——复制
oAutoIt.Sleep 300
oAutoIt.Send
" ^ " ' 这里按ctrl键,是为了解决ctrl键被按下不起来的问题
oAutoIt.Sleep 300
oAutoIt.WinClose
" [Class:Notepad] " , "" ' 关闭当前的记事本窗体
Set oAutoIt = Nothing ' 释放AutoItV3的ActiveX的内存
End Sub
今天发现,不需要使用autoit的activeX控件,直接使用vba就可以实现这个功能,代码如下:
 
   
Private Declare Sub Sleep Lib " kernel32 " (ByVal dwMilliseconds As Long )

Sub doc2Html2()

' 主要用来将word文档自动转化成html文档,并且复制html代码
'
doc2Html2 Macro
'
前尘光明制作
'
' 将文档保存成筛选的html
ActiveDocument.SaveAs FileName: = " ddd.htm " , FileFormat: = _
wdFormatFilteredHTML, LockComments:
= False , Password: = "" , AddToRecentFiles _
:
= True , WritePassword: = "" , ReadOnlyRecommended: = False , EmbedTrueTypeFonts _
:
= False , SaveNativePictureFormat: = False , SaveFormsData: = False , _
SaveAsAOCELetter:
= False
' 设置显示模式为页面模式
If ActiveWindow.View.SplitSpecial = wdPaneNone Then
ActiveWindow.ActivePane.View.Type
= wdPrintView
Else
ActiveWindow.View.Type
= wdPrintView
End If
Dim WshShell, oNotepad
Set WshShell = CreateObject ( " WScript.Shell " ) ' 创建WScript.Shell对象
Set oNotepad = WshShell.Exec( " notepad ddd.htm " ) ' 使用记事本打开ddd.htm文件
WshShell.AppActivate oNotepad.ProcessID ' 激活记事本
Sleep 300
WshShell.SendKeys
" ^a " ' CTRL+A组合键——全选
Sleep 200
WshShell.SendKeys
" ^c " ' CTRL+C组合键——复制
Sleep 200
WshShell.SendKeys
" %{F4} " ' 关闭当前的记事本窗体
Sleep 200
Set oNotepad = Nothing ' 释放内存
Set WshShell = Nothing
End Sub

转载于:https://www.cnblogs.com/weiqi/archive/2011/02/12/1952779.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值