利用好Word宏,效率Max!

虽然常用Typora打md来做整理,但是md对打印实在不友好,所以努力把word改造得趁手也是很有必要的啦。

​ md属实在打印上不大靠谱,自己写过css来专门适应打印,也试过用pandoc转成doc或者html打印,但是对于这不尽如人意的东西还是有点……不爽。word对于打印有很好的支持,对于按页进行的排版也很友好,平时还是离不开用word做整理。

​ 但是word也是有点逊,尤其在于编辑的便利性上来说,但是可以利用word宏这个“神器”在稍稍弥补。

​ 下面分享一些我常用的宏,基本上都非常简单(只有几行),但是可以免去在打字的时候需要操作鼠标的麻烦,并且有一些个性化的自动格式设计。我感觉对于效率的提高还是很有帮助的。

​ 在具体使用时只需要用“工具-自定义键盘”把这些宏对应到键盘快捷键就可以使用,比如说我直接把原本的复制快捷键Command+V指定到了自己写的“粘贴无格式”,把Command+Shift+V设定为了原来的带格式粘贴。

​ 另外,虽然学校技术课学的也是VB,但是word宏中有太多太多的内容是我目前所不知的。解决这个问题最好的方法是使用“工具-宏-录制宏”来尝试一下(软件会自动生成被录制的操作的宏),再自己根据代码猜测着调整。

​ 最后,代码分享如下:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
 Sub 粘贴无格式()
' 粘贴无格式 Macro
Selection.PasteAndFormat (wdFormatPlainText)
End Sub
'下次从外面复制东西再也不用担心格式爆炸了
Sub 上标()
' 上标 Macro
    Selection.Font.Superscript = wdToggle
End Sub
Sub 下标()
' 下标 Macro
   Selection.Font.Subscript = wdToggle
End Sub
'这两个可以定义到Command+^和_,适应一般的输入习惯
Sub 下划线()
' 下划线 Macro
    If Len(Selection.Text) = 1 Then
 If Selection.Font.Underline = wdUnderlineSingle Then
    Selection.Font.Underline = wdUnderlineNone
    Else
    Selection.Font.Underline = wdUnderlineSingle
 End If
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Font.Underline = wdUnderlineNone
Else
    Selection.Font.UnderlineColor = wdColorAutomatic
    If Selection.Font.Underline = wdUnderlineSingle Then
    Selection.Font.Underline = wdUnderlineNone
    Else
    Selection.Font.Underline = wdUnderlineSingle
    End If
End If
End Sub
'这是我现在的Command+U,能自动给光标前一个字加下划线,如果有选区则对选区加下划线
Sub 缩小字号()
' 缩小字号 Macro
    Selection.Font.Shrink
End Sub
Sub 放大字号()
' 放大字号 Macro
    Selection.Font.Grow
End Sub
'建议定义到Command+方向键
Sub 回车()
' 回车 Macro
    Selection.TypeParagraph
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)  '左缩进为0
.FirstLineIndent = CentimetersToPoints(0) '首行缩进为0
End With
End Sub
Sub 缩进0Tab()
' 缩进0Tab Macro
    Selection.Range.ListFormat.ListIndent
With Selection.ParagraphFormat
.LeftIndent = CentimetersToPoints(0)  '左缩进为0
.FirstLineIndent = CentimetersToPoints(0) '首行缩进为0
End With
End Sub
'回车和缩进都是用于在使用列表的时候使word不要把文字和序号空得太开
Sub 格式1()
' 格式1 Macro
' 这个极其啰嗦……
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(1)
        .NumberFormat = "%1."
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(0.75)
        .TabPosition = wdUndefined
        .ResetOnHigher = 0
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = ""
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(2)
        .NumberFormat = "%1.%2."
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1)
        .TabPosition = wdUndefined
        .ResetOnHigher = 1
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = ""
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(3)
        .NumberFormat = "%1.%2.%3."
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.25)
        .TabPosition = wdUndefined
        .ResetOnHigher = 2
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = ""
    End With
    With ListGalleries(wdOutlineNumberGallery).ListTemplates(1).ListLevels(4)
        .NumberFormat = "%1.%2.%3.%4."
        .TrailingCharacter = wdTrailingTab
        .NumberStyle = wdListNumberStyleArabic
        .NumberPosition = CentimetersToPoints(0)
        .Alignment = wdListLevelAlignLeft
        .TextPosition = CentimetersToPoints(1.5)
        .TabPosition = wdUndefined
        .ResetOnHigher = 3
        .StartAt = 1
        With .Font
            .Bold = wdUndefined
            .Italic = wdUndefined
            .StrikeThrough = wdUndefined
            .Subscript = wdUndefined
            .Superscript = wdUndefined
            .Shadow = wdUndefined
            .Outline = wdUndefined
            .Emboss = wdUndefined
            .Engrave = wdUndefined
            .AllCaps = wdUndefined
            .Hidden = wdUndefined
            .Underline = wdUndefined
            .Color = wdUndefined
            .Size = wdUndefined
            .Animation = wdUndefined
            .DoubleStrikeThrough = wdUndefined
            .Name = ""
        End With
        .LinkedStyle = ""
    End With
  ListGalleries(wdOutlineNumberGallery).ListTemplates(1).Name = ""
    Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries( _
        wdOutlineNumberGallery).ListTemplates(1), ContinuePreviousList:=False, _
        ApplyTo:=wdListApplyToSelection, DefaultListBehavior:= _
        wdWord10ListBehavior
    Selection.ParagraphFormat.TabStops.ClearAll
    ActiveDocument.DefaultTabStop = CentimetersToPoints(0.21)
    Selection.Font.Size = 9
    Selection.Font.Name = "DengXian"
End Sub