×

Loading...
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。

在word中进行批量处理,将大量的Word文档.doc文件转换为.htm文件

本文发表在 rolia.net 枫下论坛Word中巧用宏命令

作者:甘冀平

  宏命令作为一个非常重要的功能,在现在的许多软件中都不可缺少。利用宏,可以大大地简化我们的工作,准确快速地完成繁琐的任务。下面,就给大家详细介绍我在word中使用宏的一个实例。

【需求】

  在word中进行批量处理,将大量的Word文档.doc文件转换为.htm文件

【分析】

  我们知道,利用word可以将.doc文件转换为.htm文件,方法是:

  在Doc文件编辑窗口中,选择菜单“文件/另存为”,在“保存类型”下列列表中选择“html document”,按“保存”。单独进行几个doc文件的转换还不算繁琐,但要大批量地进行转换工作时,比如:按章节输入了一本书,形成了几十个.doc文件,要对这些文件进行转换成.htm文件的工作,这时,就不能采用手工一个个处理的笨办法了!怎么实现呢?请往下看。

【实现步骤】

  假设大批量.doc文档所在目录为c:\docs,文件名为1.1.doc,1.2.doc ...

1、 启动word

2、 关闭当前默认打开的空文档

3、 选择菜单“工具/宏/录制新宏”,输入宏名称“doctohtml”,按“确定”,进入了宏录制过程。

4、 选择菜单“文件/打开”,选择目录c:\docs,选择文件1.1.doc,按“确定”。

5、 选择菜单“文件/另存为”,在“保存类型”下列列表中选择“html document”, 按“保存”。

6、 选择菜单“文件/关闭”

7、 选择菜单“工具/宏/停止录制”

8、 选择菜单“工具/宏/宏”

9、 在出现的“宏”窗口左部选中doctohtml,单击右边的按钮“编辑”

10、宏代码改造:

在出现的“Microsoft Visual Basic”窗口中,可以看到如下的宏代码:

Sub doctohtml()

'

' doctohtml Macro

' 宏在 99-11-8 由 xxx 录制

'

ChangeFileOpenDirectory "C:\docs"

Documents.Open FileName:="1.1.doc", ConfirmConversions:=False, ReadOnly:= _

False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _

"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _

Format:=wdOpenFormatAuto

ActiveDocument.SaveAs FileName:="1.1.htm", FileFormat:=100, LockComments:= _

False, Password:="", AddToRecentFiles:=True, WritePassword:="", _

ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _

SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _

False

ActiveDocument.Close

End Sub


对上面的代码进行改造,如下:

Sub doctohtml(myfile as string)

'

' doctohtml Macro

' 宏在 99-11-8 由 xxx 录制

'

ChangeFileOpenDirectory "C:\docs"

If FileExists(gwfile + ".doc") Then

Documents.Open FileName:=myfile+".doc", ConfirmConversions:=False, ReadOnly:= _

False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _

"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _

Format:=wdOpenFormatAuto

ActiveDocument.SaveAs FileName:=myfile+".htm", FileFormat:=100, LockComments:= _

False, Password:="", AddToRecentFiles:=True, WritePassword:="", _

ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _

SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _

False

ActiveDocument.Close

end if

End Sub


并加入下面两个过程:


'判断文件是否存在的函数

Function FileExists(ByVal FileName As String) As Boolean

On Error Resume Next

FileExists = Dir$(FileName) <> ""

If Err.Number <> 0 Then

FileExists = False

End If

On Error GoTo 0

End Function


'实际的转换函数

Sub mydoctohtml()

If MsgBox("确认执行转换doc到html文件吗?", vbOKCancel + vbDefaultButton2) = _

vbCancel Then GoTo eeeddd



Call doctohtml("conver")

Call doctohtml("content")

Call doctohtml("qianyan")

Call doctohtml("fl")



Call doctohtml("1.1")

Call doctohtml("1.2")

...

Call doctohtml("1.10")

...

Call doctohtml("2.1")

...

Call doctohtml("3.1")

...

...

Call doctohtml("9.1")

...

eeeddd:

End Sub



  至此,全部代码改造完毕!关闭“Microsoft Visual Basic”窗口,回到Word窗口。


11、选择菜单“工具/宏/宏”,出现“宏”窗口,在左边的宏列表中,可以看到“mydoctohtml”一项,选中它,按右边的按钮“运行”,出现提示窗口“确认执行转换doc到html文件吗?”,选择“确定”,批量转换工作开始了!


【后记】

  上面应用宏的例子,看起来虽然步骤很多,其实做起来却非常简单,技术上关键在于2个环节:

第一、根据某个任务录制初始的宏;

第二、对初始的宏代码进行改造,已满足满足特殊的需求。

  自动化地处理,是否很让你感到计算机的高级?宏,真是个好东东!更多精彩文章及讨论,请光临枫下论坛 rolia.net
Report

Replies, comments and Discussions:

  • 枫下家园 / 电脑用户 / 各位大侠。快来帮帮忙。我都快改晕过去了。关于将doc文件转为html格式。
    我将doc后缀直接改为.html一堆乱码。要是打开doc再另存为html我可就晕过去了。我可有300多个文件要改呢。
    有没有批量修改的。多谢多谢。
    还有。300多个doc文件的所有文件名是否可以存为一个文件呢?
    我是不是太懒?要不就是微软太烂!!!
    :)
    • make your computer work for you, not work for your computer.
    • 咣当!
    • 不能直接改扩展名, 要用另存.
    • 在word中进行批量处理,将大量的Word文档.doc文件转换为.htm文件
      本文发表在 rolia.net 枫下论坛Word中巧用宏命令

      作者:甘冀平

        宏命令作为一个非常重要的功能,在现在的许多软件中都不可缺少。利用宏,可以大大地简化我们的工作,准确快速地完成繁琐的任务。下面,就给大家详细介绍我在word中使用宏的一个实例。

      【需求】

        在word中进行批量处理,将大量的Word文档.doc文件转换为.htm文件

      【分析】

        我们知道,利用word可以将.doc文件转换为.htm文件,方法是:

        在Doc文件编辑窗口中,选择菜单“文件/另存为”,在“保存类型”下列列表中选择“html document”,按“保存”。单独进行几个doc文件的转换还不算繁琐,但要大批量地进行转换工作时,比如:按章节输入了一本书,形成了几十个.doc文件,要对这些文件进行转换成.htm文件的工作,这时,就不能采用手工一个个处理的笨办法了!怎么实现呢?请往下看。

      【实现步骤】

        假设大批量.doc文档所在目录为c:\docs,文件名为1.1.doc,1.2.doc ...

      1、 启动word

      2、 关闭当前默认打开的空文档

      3、 选择菜单“工具/宏/录制新宏”,输入宏名称“doctohtml”,按“确定”,进入了宏录制过程。

      4、 选择菜单“文件/打开”,选择目录c:\docs,选择文件1.1.doc,按“确定”。

      5、 选择菜单“文件/另存为”,在“保存类型”下列列表中选择“html document”, 按“保存”。

      6、 选择菜单“文件/关闭”

      7、 选择菜单“工具/宏/停止录制”

      8、 选择菜单“工具/宏/宏”

      9、 在出现的“宏”窗口左部选中doctohtml,单击右边的按钮“编辑”

      10、宏代码改造:

      在出现的“Microsoft Visual Basic”窗口中,可以看到如下的宏代码:

      Sub doctohtml()

      '

      ' doctohtml Macro

      ' 宏在 99-11-8 由 xxx 录制

      '

      ChangeFileOpenDirectory "C:\docs"

      Documents.Open FileName:="1.1.doc", ConfirmConversions:=False, ReadOnly:= _

      False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _

      "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _

      Format:=wdOpenFormatAuto

      ActiveDocument.SaveAs FileName:="1.1.htm", FileFormat:=100, LockComments:= _

      False, Password:="", AddToRecentFiles:=True, WritePassword:="", _

      ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _

      SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _

      False

      ActiveDocument.Close

      End Sub


      对上面的代码进行改造,如下:

      Sub doctohtml(myfile as string)

      '

      ' doctohtml Macro

      ' 宏在 99-11-8 由 xxx 录制

      '

      ChangeFileOpenDirectory "C:\docs"

      If FileExists(gwfile + ".doc") Then

      Documents.Open FileName:=myfile+".doc", ConfirmConversions:=False, ReadOnly:= _

      False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _

      "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _

      Format:=wdOpenFormatAuto

      ActiveDocument.SaveAs FileName:=myfile+".htm", FileFormat:=100, LockComments:= _

      False, Password:="", AddToRecentFiles:=True, WritePassword:="", _

      ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _

      SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _

      False

      ActiveDocument.Close

      end if

      End Sub


      并加入下面两个过程:


      '判断文件是否存在的函数

      Function FileExists(ByVal FileName As String) As Boolean

      On Error Resume Next

      FileExists = Dir$(FileName) <> ""

      If Err.Number <> 0 Then

      FileExists = False

      End If

      On Error GoTo 0

      End Function


      '实际的转换函数

      Sub mydoctohtml()

      If MsgBox("确认执行转换doc到html文件吗?", vbOKCancel + vbDefaultButton2) = _

      vbCancel Then GoTo eeeddd



      Call doctohtml("conver")

      Call doctohtml("content")

      Call doctohtml("qianyan")

      Call doctohtml("fl")



      Call doctohtml("1.1")

      Call doctohtml("1.2")

      ...

      Call doctohtml("1.10")

      ...

      Call doctohtml("2.1")

      ...

      Call doctohtml("3.1")

      ...

      ...

      Call doctohtml("9.1")

      ...

      eeeddd:

      End Sub



        至此,全部代码改造完毕!关闭“Microsoft Visual Basic”窗口,回到Word窗口。


      11、选择菜单“工具/宏/宏”,出现“宏”窗口,在左边的宏列表中,可以看到“mydoctohtml”一项,选中它,按右边的按钮“运行”,出现提示窗口“确认执行转换doc到html文件吗?”,选择“确定”,批量转换工作开始了!


      【后记】

        上面应用宏的例子,看起来虽然步骤很多,其实做起来却非常简单,技术上关键在于2个环节:

      第一、根据某个任务录制初始的宏;

      第二、对初始的宏代码进行改造,已满足满足特殊的需求。

        自动化地处理,是否很让你感到计算机的高级?宏,真是个好东东!更多精彩文章及讨论,请光临枫下论坛 rolia.net
      • //admire
      • 好厉害, 用WORD这么精, 这样的经验一般在国内不会有
        • 嘿嘿,从国内网站上转贴过来的 :-PP
          • 别谦虚拉, 你的回答是这里的最好。
            • 赫赫,在国内我就找100个同事,1人负责3个,人海战术,很快就完,何必用宏编程那么麻烦? :D
              • 这里人少:) 不过找一00个中国程序员也不难那 :)
      • save as就行了, 犯得着这么麻烦吗?
      • High hand!!! Filed already. Thanks!