ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] vba操作福昕PDF编辑器把PDF转换成word文档

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-8-24 14:27 | 显示全部楼层 |阅读模式
本帖最后由 chenjy267 于 2022-8-24 14:30 编辑
  1. <blockquote>Sub test()
复制代码
点击另存为按钮后出现的界面
image.png
  1. SendKeys "{RIGHT}{RIGHT}{ENTER}", True
复制代码
发送以上按键实现选择当前桌面文件夹(即你打开的PDF文档所在的文件夹),然后出现一下界面
image.jpg
  1. SendKeys "{TAB}", True
复制代码
发送以上按键实现选择保存类型选框,然后发送下面按键实现下拉选框
  1. SendKeys "%{DOWN}", True
复制代码
出现这个界面,然后上下按键选择类型 image.png


  1. SendKeys "{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}", True
复制代码
选到想要的类型后,发送以下按键实现保存
  1. SendKeys "{ENTER}{ENTER}", True
复制代码
总而言之,vba操作其他程序,最重要的是保证当前程序处于激活状态,因为是通过模拟键盘按键操作,所以需要自己先手动模拟一遍,还有其他的一些细节需要自己调试,控制其他程序同理


TA的精华主题

TA的得分主题

 楼主| 发表于 2022-8-25 12:09 | 显示全部楼层
这代码违规吗,发不出来?
Sub test()
    Dim thispath, myfile, a$, Savetime As Single, mydoc As Document
    thispath = ActiveDocument.path & "\"
    myfile = Dir(thispath & "*.pdf")
  Do While myfile <> ""
    If myfile <> ActiveDocument.Name Then
        'Shell "C:\Program Files (x86)\Foxit Software\Foxit PhantomPDF\FoxitPhantomPDF.exe " & thispath & myfile
   
    ReturnValue = Shell("C:\Program Files (x86)\Foxit Software\Foxit PhantomPDF\FoxitPhantomPDF.exe " & thispath & myfile, 1)
    Savetime = Timer
        While Timer < Savetime + 20'等待福昕软件完全加载,不然捕捉不到
            DoEvents
        Wend
    AppActivate ReturnValue
    'SendKeys "+{TAB}{RIGHT}{RIGHT}{ENTER}{TAB}%{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}{ENTER}", True
    SendKeys "%", True
    SendKeys "%", True'两次Alt按键是为了激活当前打开的PDF文档,不添加整个程序没反应
    'SendKeys "%F", True
    'SendKeys "%A", True
    'SendKeys "+{TAB}", True
    SendKeys "%", True
    SendKeys "7", True'Alt+7是另存为的快捷键
    SendKeys "{RIGHT}{RIGHT}{ENTER}", True
    SendKeys "{TAB}", True
    SendKeys "%{DOWN}", True
    SendKeys "{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}", True
    SendKeys "{ENTER}{ENTER}", True
    End If
    Savetime = Timer
        While Timer < Savetime + 40'PDF转换word文档过程等待
            DoEvents
        Wend
    Set mydoc = ActiveDocument
    mydoc.Close
    Shell "cmd.exe /c taskkill /im FoxitPhantomPDF.exe /f"'关闭福昕软件,不然下一个循环会出错
    Savetime = Timer
        While Timer < Savetime + 3
            DoEvents
        Wend
    myfile = Dir
  Loop
End Sub

TA的精华主题

TA的得分主题

发表于 2022-8-29 03:17 | 显示全部楼层
不用搞得哪么复杂,office2016直接打开PDF,就转换为word格式了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 02:47 , Processed in 0.034631 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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