|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 OKJSJSF 于 2023-5-18 09:37 编辑
下面代码用于WORD宏按钮。
Option Explicit
Sub 窗体域全选()
Dim i As Byte, i2 As Byte
With ActiveDocument
If .ProtectionType <> wdNoProtection Then .Unprotect
On Error Resume Next
Do
i = InputBox("下框中可录数字1234与对应的功能:" & vbCr & 1 & " 添加灰色底纹" & Chr(9) & Space(4) & 2 & " 添加下划线/字体加粗" & vbCr & 3 & " 取消突出显示" & Chr(9) & Space(4) & 4 & " 自定义", "参数设置", 1)
If i = 1 Or i = 2 Or i = 3 Or i = 4 Then Exit Do
Loop
Select Case i
Case 1
For i2 = 1 To .FormFields.Count
.FormFields(i2).Range.Shading.Texture = wdTexture15Percent
.FormFields(i2).Range.Font.Underline = wdUnderlineNone
.FormFields(i2).Range.Font.Bold = False
Next
Case 2
For i2 = 1 To .FormFields.Count
.FormFields(i2).Range.Shading.Texture = wdTextureNone
.FormFields(i2).Range.Font.Underline = wdUnderlineSingle
.FormFields(i2).Range.Font.Bold = True
Next
Case 3
For i2 = 1 To .FormFields.Count
.FormFields(i2).Range.Shading.Texture = wdTextureNone
.FormFields(i2).Range.Font.Underline = wdUnderlineNone
.FormFields(i2).Range.Font.Bold = False
Next
Case Else
SendKeys "^", True '这个是按住CTRL键,目的是为下面逐个选择作准备,可能只有按一次的效果,不能全选成功
For i2 = 1 To .FormFields.Count
.FormFields(i2).Range.Select
Next
.Application.Dialogs(wdDialogFormatFont).Show
End Select
.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
MsgBox "执行完毕。"
End With
End Sub
上面的代码不能达到按住CTRL键不放同时逐个选择窗体域的全选效果,所以无法批量设置窗体域文本格式。
|
|