大家好,前面有一期作品《值得收藏办公技巧:带宏Office文档和2003及以下文档轻松批量互转》给各位以Excel的形式讲解了如何实现同一类型的Office文档高低版本批量互转的问题。当时呢?我们用的低版本的Excel格式的文档和高版本的启用宏的Excel文档格式互转,其他大类的文档如Word、PowerPoint和Excel转换很类似。
本来,按理说,分享也就到此结束了。然而,有三个个粉丝私信我说,我分享的操作还是比较局限,能否将各大类Office文档灵活呈现、且具有各大类office文档内部互转的子类型选择的友好交互效果,这就很不错了。为了不辜负大家的期望和长期支持,今天,我特地优化并丰富了Word、Excel、PowerPoint它们格子内部子类型互转的算法思想及其功能代码实现,希望这次对大家不负所望。
对于Word,我们要实现其子类型“.doc .docx .docm”之间的互转;对于Excel,我们要实现其子类型“.xls .xlsx .xlsm”之间的互转;对于PowerPoint,我们要实现其子类型“.ppt .pptx .pptm”之间的互转。实现这些操作,我们可以充分运用VBA后台窗体作为选择交互实现,比如对于PowerPoint,我们可以在窗体里动态呈现它的子类型列表“.ppt .pptx .pptm”等等,然后将这些选择的子类型值回传到外部模块中进行相应的处理。
另外,我们还必须列出各大类型office文档的各子类型的常量数值,比如我们可以这样对应:1-"ppt", 24-"pptx", 25-"pptm";0-"doc", 12-"docx", 13-"docm";56-"xls", 51-"xlsx", 52-"xlsm"等。
这样,问题就变得简单容易了。下面,我们就来完整分享如何实现的吧。
一、Word文档各子类型互转函数SaveAs2用法
格式:Office文档对象.SaveAs2 FileName:=新文件名,Format:=新文件的格式类型
举例:Dim Office_Doc As Object
Set Office_Doc=GetObject(文件全路径) '根据文件全路径获取Office文档对象实例
Office_Doc.SaveAs2 FileName:=全路径的新文件名,Format:=子类型常量值
说明:将Word文档另存为各大类其子类型的文档。
二、Excel、PowerPoint文档各子类型互转函数SaveAs用法
格式:Office文档对象.SaveAs FileName:=新文件名,Format:=新文件的格式类型
举例:Dim Office_Doc As Object
Set Office_Doc=GetObject(文件全路径)
Office_Doc.SaveAs FileName:=全路径的新文件名,Format:=子类型常量值
说明:将Excel、PowerPoint文档另存为各大类其子类型的文档。
三、界面操作设计
(一)前端操作界面
图1 前端操作界面布局
(二)后台VBA窗体界面
图2 VBA后台窗体界面
四、同一大类型Office文档各子格式自由互转的操作体验
(一) Word文档各子类型格式之间自由互转
1、点击主操作界面的按钮< 同一大类型的Office文档各格式自由转转>,弹出文件对话框。如下图所示
图3 弹出打开文件对话框
2、点击该对话框的<取消>或者标题栏的<X>按钮,将弹出未选任何文件的消息框提示。如下图所示
图4 取消了文件的选取
3、否则,在上面的对话框中选择了Word文档。如下图所示
图5 在该打开文件对话框选择文档文件
4、点击<打开>按钮,将弹出选择该Word大类文档转换的子类型的窗体,此时,我们可以进行选择。如下图所示
图6 弹出选择的同一大类文档子类型选择窗体
5、点击<确定>,可以看到提示。如下图
图7 选择的同一大类文档子类型后的提示
6、再次点击<确定>,开始转换,并且转换完成时弹出提示信息。如下图
图8 同一大类文档子类型转换成功的提示
7、查看转换结果。如下图所示
图9 验证转换结果展示
(二) Excel文档各子类型格式之间自由互转
1、点击主操作界面的按钮< 同一大类型的Office文档各格式自由转转>,弹出文件对话框。如下图所示
图10 弹出打开文件对话框
2、点击该对话框的<取消>或者标题栏的<X>按钮,将弹出未选任何文件的消息框提示。如下图所示
图11 取消了文件的选取
3、否则,在上面的对话框中选择了Excel文档。如下图所示
图12 在该打开文件对话框选择文档文件
4、点击<打开>按钮,将弹出选择该Excel大类文档转换的子类型的窗体,此时,我们可以进行选择。如下图所示
图13 弹出选择的同一大类文档子类型选择窗体
5、点击<确定>,可以看到提示。如下图
图14 选择的同一大类文档子类型后的提示
6、再次点击<确定>,开始转换,并且转换完成时弹出提示信息。如下图
图15 同一大类文档子类型转换成功的提示
7、查看转换结果。如下图所示
图16 验证转换结果展示
(三) PowerPoint文档各子类型格式之间自由互转
1、点击主操作界面的按钮< 同一大类型的Office文档各格式自由转转>,弹出文件对话框。如下图所示
图17 弹出打开文件对话框
2、点击该对话框的<取消>或者标题栏的<X>按钮,将弹出未选任何文件的消息框提示。如下图所示
图18 取消了文件的选取
3、否则,在上面的对话框中选择了PowerPoint文档。如下图所示
图19 在该打开文件对话框选择文档文件
4、点击<打开>按钮,将弹出选择该PowerPoint大类文档转换的子类型的窗体,此时,我们可以进行选择。如下图所示
图20 弹出选择的同一大类文档子类型选择窗体
5、点击<确定>,可以看到提示。如下图
图21 选择的同一大类文档子类型后的提示
6、再次点击<确定>,开始转换,并且转换完成时弹出提示信息。如下图
图22 同一大类文档子类型转换成功的提示
7、查看转换结果。如下图所示
图23 验证转换结果展示
从上面,给各位粉丝朋友完整呈现了同一大类型Office文档各子格式自由互转的操作问题,这次的操作还算友好吧!我们如何在VBA后台实现的呢?下面,我们就来给各位看看它们的功能实现的代码截图吧。
五、互转操作的后台功能代码实现
(一)后台VBA窗体代码截图如下
图24 VBA窗体代码截图一
图25 VBA窗体代码截图二
(二)模块1中的代码截图如下
图26 互转代码截图1
图27 互转代码截图2
图28 互转代码截图3
好了,整个操作及功能实现代码都分享给大家了,有心动的感觉吗?那就收藏吧,到这里,应该彻底解决了粉丝们的同一大类office文档各子类型的互转问题,在此基础上,粉丝们可以借鉴我前期的作品,改造为批量转换,我在这里就不在多说了,让大家动动手吧。
最后,还是那句老话,非常感谢各位粉丝朋友的长期关注(头条号:跟我学Office高级办公)、推广和对作品的点评!疫情快过去了,加之天气越来越热了,大家还是要多多注意身体健康哦,谢谢!
,