Word下的几个VBA代码

 
  •  删除文档中所有内容为空的行
Sub DelBlank()
    Dim i as Paragraph, n as Long
    Application.ScreenUpdating = False
    For Each i In ActiveDocument.Paragraphs
        If Len(i.Range) = 1 Then
            i.Range.Delete
            n = n + 1
        End If
    Next
    MsgBox "共删除空白段落" & n & "个。"
    Application.ScreenUpdating = True
End Sub
  • 删除文档中的隐藏文字
Sub test()
 n = 0
 ActiveDocument.ActiveWindow.View.ShowHiddenText = True
 For Each i In ActiveDocument.Characters
  If i.Font.Hidden = True Then
   n = n + 1
   i.Delete
  End If
 Next
 MsgBox "共删除隐藏字符" & n & "个"
End Sub
  • 删除空格
Sub  删除空格()
  Dim FindChar As String, Fcount As Integer, RepChar As String
  On Error Resume Next
  Application.ScreenUpdating = False '关闭屏幕更新
  FindChar = " "
  RepChar = ""
  With ActiveDocument.Content.Find  '此处针对全文档
    Do While .Execute(findtext:=FindChar) = True '如果发现
    Fcount = Fcount + 1 '计数器
    Loop
        If MsgBox("文档中共发现了" & Fcount & "个" & FindChar & vbCrLf _
& ",按Yes键将进行下一步的替换工作,按No取消", vbYesNo + vbInformation) = vbYes Then
     .Execute findtext:=FindChar, Wrap:=wdFindContinue, replacewith:=RepChar, Replace:=wdReplaceAll
     End If
  End With
  Application.ScreenUpdating = True
 '恢复屏幕更新
 End Sub
  • 段首空格删除
Sub  删除段首空格1()
 Selection.WholeStory 'CTR+A
 Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'CTR+E
 Selection.ParagraphFormat.Reset 'CTR+Q
End Sub
Sub 删除段首空格2()
     Dim i As Paragraph, n As Long
     Application.ScreenUpdating = False '关闭屏幕刷新
     For Each i In ActiveDocument.Paragraphs '在活动文档的段落集合中循环
           For n = 1 To i.Range.Characters.Count
               If i.Range Like " *" _
               Or i.Range Like " *" Then
                  i.Range.Characters(1).Delete
                Else: Exit For
                End If
             Next n
        Next
       Application.ScreenUpdating = True '恢复屏幕刷新
    End Sub
Sub 删除段首空格3()
      Dim i As Paragraph, n As Long
      Application.ScreenUpdating = False '关闭屏幕刷新
      For Each i In ActiveDocument.Paragraphs '在活动文档的段落集合中循环
           For n = 1 To i.Range.Characters.Count
               If i.Range.Characters(1).Text = " " _
               Or i.Range.Characters(1).Text = " " Then
                  i.Range.Characters(1).Delete
               Else: Exit For
               End If
            Next n
       Next
      Application.ScreenUpdating = True '恢复屏幕刷新
     End Sub
  • 删除空白段落
'功能简介:可以对指定长度的段落进行删除,当LEN=1时
'可对空白段落进行删除。'
'* ---------------------------------------
Sub 删除空段()
  Dim i As Paragraph, n As Long
  Call 删除段首空格2 '调用工程
  Application.ScreenUpdating = False '关闭屏幕刷新
  For Each i In ActiveDocument.Paragraphs '在活动文档的段落集合中循环
  If Len(i.Range) = 1 Then '判断段落长段,此处可根据文档实际情况
  i.Range.Delete '进行必要的修改可将任意长度段落删除
  n = n + 1 '计数
  End If
  Next
  MsgBox "共删除空白段落" & n & "个!"
  Application.ScreenUpdating = True '恢复屏幕刷新
 End Sub

  • 设置段落格式
Sub 设置段落格式()
  Dim pa As Paragraph
  On Error Resume Next
  Application.ScreenUpdating = False  '关闭屏幕更新
  For Each pa In ActiveDocument.Paragraphs
  	pa.Format.CharacterUnitFirstLineIndent = 2
  Next
  With ActiveDocument.Content.Font
    .Name = "楷体_GB2312"
    .Size = 14
  End With
 Application.ScreenUpdating = True  '恢复屏幕更新
 End Sub
  • 设置大纲级别
     '* +++++++++++++++++++++++++++++++++++++++
    '实现以日期2010开头的段落,第一句加粗的代码,
    '并将该段落升为一级大纲。'
    '* ----------------------------------------
    Sub 设置大纲1()
      On Error Resume Next
      Application.ScreenUpdating = False  '关闭屏幕更新
      For RQJC = 1 To ActiveDocument.Range(0, ActiveDocument.Range.End).Paragraphs.Count '对正文全文段落进行循环
        With ActiveDocument.Paragraphs(RQJC).Range
        If ActiveDocument.Range(.Start, .Start + 4).Text = "2010" Then '当每一段落前四个字符以“2010”开头
        .Sentences(1).Font.Bold = True '每一段第一句字体加粗
        ActiveDocument.Paragraphs(RQJC).OutlineLevel = wdOutlineLevel1 '该段落的大纲级别变为一级大纲
        End If
        End With
       Next RQJC
       Application.ScreenUpdating = True  '恢复屏幕更新
     End Sub
    

    '* +++++++++++++++++++++++++++++++++++++++
        '字符数小于41的段落,第一句加粗,
        '并将该段落升为二级大纲。'
        '* -------------------------------------------
        Sub 设置大纲2()
          Dim n As Long, i As Paragraph
          On Error Resume Next
          Application.ScreenUpdating = False  '关闭屏幕更新
          For n = 1 To ActiveDocument.Paragraphs.Count
            If ActiveDocument.Paragraphs(n).Range.Characters.Count < 41 _
            And ActiveDocument.Paragraphs(n).Range.Characters.Count > 0 Then '段落字符数小于41,约为一两行
            ActiveDocument.Paragraphs(n).Range.Sentences.First.Font.Bold = True '每一段第一句字体加粗
            ActiveDocument.Paragraphs(n).OutlineLevel = wdOutlineLevel2 '该段落的大纲级别变为二级大纲
            End If
          Next n
          Application.ScreenUpdating = True  '恢复屏幕更新
         End Sub
    

    '* +++++++++++++++++++++++++++++++++++++++
    '以数字开头的段落,第一句加粗,
    '并将该段落升为二、三级大纲。'
    '* ------------------------------------------
    Sub 设置大纲3()
      Dim pa As Paragraph, MyStr1 As String, MyStr2 As String, MyStr3 As String
      On Error Resume Next
      Application.ScreenUpdating = False  '关闭屏幕更新
      Call 删除段首空格3  '调用工程
      MyStr1 = "第一二三四五六七八九十" '假定为手动加注每个段落开头为中文大写数字
      MyStr2 = "123456789" '假定为手动加注每个段落开头为数字,半角
      MyStr3 = "123456789" '假定为手动加注每个段落开头为数字,全角
      For Each pa In ActiveDocument.Paragraphs
        If InStr(MyStr1, ActiveDocument.Range(pa.Range.Start, pa.Range.Start + 1).Text) > 0 Then
        pa.Range.Sentences.First.Font.Bold = True '每一段第一句字体加粗
        pa.OutlineLevel = wdOutlineLevel2 '该段落的大纲级别变为二级大纲
        End If
        If InStr(MyStr2, ActiveDocument.Range(pa.Range.Start, pa.Range.Start + 1).Text) > 0 Then
        pa.Range.Sentences.First.Font.Bold = True '每一段第一句字体加粗
        pa.OutlineLevel = wdOutlineLevel3 '该段落的大纲级别变为三级大纲
        End If
        If InStr(MyStr3, ActiveDocument.Range(pa.Range.Start, pa.Range.Start + 1).Text) > 0 Then
        pa.Range.Sentences.First.Font.Bold = True '每一段第一句字体加粗
        pa.OutlineLevel = wdOutlineLevel3 '该段落的大纲级别变为三级大纲
        End If
      Next
      Application.ScreenUpdating = True  '恢复屏幕更新
     End Sub 
    

    '* +++++++++++++++++++++++++++++++++++++++
    '以"第#"开头的段落,第一句加粗,
    '并将该段落升为二级大纲。'
    '* ------------------------------------------
    Sub 设置大纲4()
      Dim pa As Paragraph, MyStr1 As String
      On Error Resume Next
      Application.ScreenUpdating = False  '关闭屏幕更新
      Call 删除段首空格3  '调用工程
      MyStr1 = "一二三四五六七八九十" '假定为手动加注每个段落开头为中文大写数字
      For Each pa In ActiveDocument.Paragraphs
          If pa.Range.Characters.First.Text = "第" Then
            If InStr(MyStr1, ActiveDocument.Range(pa.Range.Start + 1, pa.Range.Start + 2).Text) > 0 Then
            pa.Range.Sentences.First.Font.Bold = True '每一段第一句字体加粗
            pa.OutlineLevel = wdOutlineLevel2 '该段落的大纲级别变为二级大纲
            End If
          End If
      Next
      Application.ScreenUpdating = True  '恢复屏幕更新
     End Sub
    

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: VBA是一种Microsoft Office套件自带的编程语言,它可以用来定制化Office应用程序,封装小白工具即是运用VBA编写代码,实现一些自动化工作或简化操作的工具。 VBA代码的封装可以分为几个步骤: 1. 了解需求:首先,我们需要明确需要封装的小白工具要实现的功能,例如自动整理数据、批量填充表格、自动生成报告等。 2. 编写代码:根据需求,利用VBA编写代码来实现相应的功能。VBA代码可以通过宏录制器录制操作的过程,并对录制的代码进行修改和优化。也可以通过从头编写代码来实现更复杂的功能。 3. 进行测试:完成代码编写后,需要对代码进行测试,确保它可以按照预期的方式工作并且没有错误。可以通过输入一些测试数据,运行代码并检查输出结果是否正确。 4. 调整优化:如果测试过程中发现代码有问题或功能不完善,我们需要根据测试结果进行调整和优化。可以通过添加更多的条件判断、循环、函数等来改进代码。 5. 添加用户界面:为了方便用户使用小白工具,可以通过VBA代码添加用户界面,例如添加输入框、按钮等用户可以操作的控件。这样用户可以通过界面来输入参数并运行相应功能。 6. 分发使用:最后,将封装好的VBA代码分发给需要使用小白工具的用户。可以通过将代码保存在Excel或其他Office应用程序的文件中,并与他人共享。 通过VBA代码的封装,我们可以将复杂的操作简化成一键执行的小白工具,提高工作效率和准确性。无需深入编程知识,即可定制自己所需的功能,让工作更轻松高效。 ### 回答2: VBA代码封装小白工具是指使用Visual Basic for Applications(VBA)语言编写一些指令和功能,以简化和自动化常见的办公任务。这些小白工具可以是Excel宏、Word自定义功能、PowerPoint幻灯片设计等。以下是使用VBA代码封装小白工具的一些示例: 1. Excel宏录制与自动化:可以利用Excel宏录制器录制一系列操作,并将其保存为VBA代码。例如,你可以录制一个宏用于自动拷贝和粘贴数据,然后通过执行这个VBA代码,避免手动进行拷贝黏贴。 2. Word自定义功能:通过VBA代码,可以自定义一些常用的操作功能,比如批量修改格式、搜索替换特定文本、自动生成目录等。如果你在Word中频繁做一些文本处理,使用VBA封装这些功能可以大大提高工作效率。 3. PowerPoint幻灯片设计:使用VBA代码可以自动化幻灯片设计过程,例如自动生成具有特定格式和样式的幻灯片,插入表格、图表和图片等。你只需执行一段VBA代码,即可在几秒钟内完成繁琐的排版和设计工作。 此外,VBA还可以应用于Outlook邮件的自动发送、Access数据库的操作、自动化网页处理等方面。通过使用VBA代码,我们可以根据具体需求,定制化各种小白工具,以提高工作效率和简化繁琐的操作流程。 需要注意的是,在编写和使用VBA代码封装小白工具时,要注意代码的可读性和可维护性,避免频繁使用杂乱无章的代码和复杂的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值