ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创]原创工具---PowerPoint转换为WORD文件!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-8-12 14:28 | 显示全部楼层 |阅读模式

详细资料及下载文件见下面的连接:

加载宏 ppToWord.ppa(FOR OFFICE2000) 演示文件 pptToWord演示文稿1.ppt 效果:如果你的PP中的表格不多,主要是用文本框的话,基本可以完美的在WORD中再现! 欢迎大家一起探讨!

Public Sub 保留格式PP转换为WORD() Call PowerPointToWord(True) MsgBox "转换完毕 !(表格未做处理,请核对!)", vbInformation + vbOKOnly, "OK" End Sub Public Sub 删除格式PP转换为WORD() Call PowerPointToWord(False) MsgBox "转换完毕 !(表格未做处理,请核对!)", vbInformation + vbOKOnly, "OK" End Sub

Private Sub PowerPointToWord(blStyle As Boolean) '------------------------------------------------------------------------- '作用:主要是把文本框、占位符、艺术字、图片、公式里面得内容转换到WORD里面。 '图表、WORD表格、组织结构图等 OLE、表格暂时处理不好,主要是位置处理不好 '保持格式: blStyle = False ,= True 删除格式 '那位处理得好,麻烦通知一下:'ok99999ok@126.com '------------------------------------------------------------------------- On Error Resume Next Dim wdApp As Object Dim mr As SlideRange Dim tx As TextRange Dim i As Integer Dim iCount As Integer Dim iCunCount As Integer Dim iShapeType As Integer Set wdApp = CreateObject("Word.Application") wdApp.Visible = True 'wdApp.Application.ScreenUpdating = False '关闭屏幕刷新 wdApp.documents.Add Set mySlides = ActivePresentation.Slides.Range iCount = mySlides.Count For i = 1 To iCount DoEvents ActiveWindow.View.GotoSlide Index:=i iCunCount = ActiveWindow.Selection.SlideRange.Shapes.Count ' For j = 1 To iCunCount ActiveWindow.Selection.SlideRange.Shapes(j).Select iShapeType = ActiveWindow.Selection.SlideRange.Shapes(j).Type '1--自选图形 '7---公式 、(图表、WORD表格、组织结构图等 OLE) '17--文本框 19--表格 15--艺术字 14--占位符 '13---图片 ' Debug.Print iShapeType Select Case iShapeType Case 1, 14, 17 Set tx = ActiveWindow.Selection.ShapeRange.TextFrame.TextRange tx.Select If tx.Text <> "" Then '---------------------------------------------------------------------- If blStyle Then '保持格式 ActiveWindow.Selection.Copy ActiveWindow.Selection.Copy wdApp.documents(1).Activate wdApp.Selection.Paste '---------------------------------------------------------------------- Else '删除格式 wdApp.documents(1).Range.InsertAfter tx.Text End If End If Case 7, 13, 15 '图片、公式 ActiveWindow.Selection.Copy 'wdApp.Documents(1).Activate wdApp.Selection.Paste Case 19 '表格不处理 ' ActiveWindow.Selection.Copy ' wdApp.Activate ' wdApp.Selection.Paste End Select Next j Next i ' wdApp.Application.ScreenUpdating = True End Sub

llkTEHYS.rar (32.21 KB, 下载次数: 194)
[此贴子已经被作者于2005-8-13 9:52:03编辑过]

TA的精华主题

TA的得分主题

发表于 2005-8-12 17:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

虽然没能力、没时间做测试,但看到这样的原创还是异常高兴。

祝论坛日日进步。

TA的精华主题

TA的得分主题

发表于 2005-8-12 21:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2005-8-13 08:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-4-30 10:53 | 显示全部楼层
你可通过判断 ActiveWindow.Selection.SlideRange.Shapes(j).Top 的值,来取得各对象的先后位置, 再进行Paste 不就可以了吗?

TA的精华主题

TA的得分主题

发表于 2006-5-5 10:06 | 显示全部楼层

好东西,先收藏了,谢谢!

TA的精华主题

TA的得分主题

发表于 2006-6-14 17:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享

TA的精华主题

TA的得分主题

发表于 2007-5-17 10:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-1-5 13:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-1-5 13:20 | 显示全部楼层

ppt自带功能可以解决这个问题

无需专门设计软件
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-26 06:24 , Processed in 0.050077 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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