zoukankan      html  css  js  c++  java
  • vba调用AutoItX3的Activex控件,实现doc2Html源码

    说明,这是自己录制的一个宏,然后调用AutoIt的Activex控件
    功能:实现自动将当前的word文档导出成html代码的功能 导出的html默认复制到了剪切板
    doc2Html的宏代码下载
    autoitX3 ActiveX DLL版本号:3.3.6.1(32位系统autoitX3 的Activex控件安装和注册)
    效果演示截图:
    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
  • 相关阅读:
    年末反思
    Flink运行时架构
    Phoenix 启动报错:Error: ERROR 726 (43M10): Inconsistent namespace mapping properties. Cannot initiate connection as SYSTEM:CATALOG is found but client does not have phoenix.schema.
    Clickhouse学习
    Flink简单认识
    IDEA无法pull代码到本地,Can't Update No tracked branch configured for branch master or the branch doesn't exist.
    第1章 计算机系统漫游
    简单的 Shell 脚本入门教程
    开源≠免费 常见开源协议介绍
    MySQL 视图
  • 原文地址:https://www.cnblogs.com/weiqi/p/1952779.html
Copyright © 2011-2022 走看看