一、VBA修改word文档
开启模糊查询即可,再判断一下查找的长度
Sub 分章()
Set myrange = ActiveDocument.Content
For n = 1 To 8
myrange.Find.Execute findtext:="第*章", Forward:=True, MatchWildcards:=True
If myrange.End - myrange.Start < 20 Then
myrange.Style = ActiveDocument.Styles("标题 2")
End If
Next
End Sub
测试运行了下,效果有点不好,修改一下
Sub 分章()
Set myrange = ActiveDocument.Content
For n = 1 To 8
myrange.Find.Execute findtext:="第*章", Forward:=True, MatchWildcards:=True
If myrange.End - myrange.Start < 20 Then
myrange.Style = ActiveDocument.Styles("标题 2")
Else
myrange.Start = myrange.Start + 1
End If
Next
End Sub
二、能够修改Word命令的VBA代码
在WORD中,我们可以通过修改WORD命令的方法,来方便地为WORD控件指定用户自定义的过程,完成或者转移(禁用)相应的内置方式.它的原理是利用相应宏名来置换过程的方法.在下面的三个部分中,我们可以体会其中的相同点与不同点。
Sub Example() Dim i As CommandBarControl For Each i In Application.CommandBars.FindControls If i.ID = 4 Then i.OnAction = "MySub" '指定宏名 End If Next End Sub Sub ResetSub() Dim i As CommandBarControl For Each i In Application.CommandBars.FindControls If i.ID = 4 Then 'ID=4 '相当于CTRL+P(文件/打印) i.OnAction = "" '恢复原有ID功能 End If Next End Sub Private Sub Document_Close() ResetSub '关闭文档后恢复 End Sub Private Sub Document_Open() Example '修改 End Sub 以上为第一部分,以下为第二部分: Sub FilePrint() MySub End Sub Sub MySub() MsgBox "不能使用打印功能!" End Sub 该过程为公用部分 简析:在EXCEL中,我们只能通过FindControls(ID)的方法为原有程序修改命令指定宏过程;在WORD中,我们也可能通过该方法进行;但如果我们采取第二部分的话,更为简单,这就是所谓的修改WORD命令.当然一个名为MySub的过程可以省略,直接写在FilePrint宏中。以下为实用修改WORD命令的一个例子(该例子放在自定义模板中) Sub FilePrint()'修改WORD命令(文件/打印:CTRL+P) Dim Pc As Integer, Var As Integer With Application.Dialogs(wdDialogFilePrint) If .Show = -1 Then Pc = .NumCopies '取得打印份数 Var = Me.Variables("PrintPageCount").Value '延续以前的打印份数 Me.Variables("PrintPageCount").Value = Pc + Var '至今共打印的张数 Me.Save '保存 MsgBox "目前累计打印份数为" & Me.Variables("PrintPageCount").Value End If End With End Sub Sub FilePrintDefault'修改WORD命令(常用工具栏/打印活动文档) ActiveDocument.PrintOut '默认打印 Me.Variables("PrintPageCount").Value = _ Me.Variables("PrintPageCount").Value + 1 Me.Save '保存 MsgBox "目前累计打印份数为" & Me.Variables("PrintPageCount").Value End Sub Private Sub Document_Open() On Error Resume Next Me.Variables.Add Name:="PrintPageCount" '预定一个文档变量 End Sub 如果快速得到WORD中对应命令的命令名称,有多种方法,一是使宏对话框中的WORD命令,我们可以知道所有WORD命令,还可以使用宏对话框中的”ListCommands”命令,将所有WORD命令自动列表;还可以使用自定义/命令/所有命令中获得;也可以通过插入域/MacroButton域中的宏名列表中获得;最方便的是使用CTRL+ALT+数字小键盘上的”+”号,当光标变成”中国结”时,点向所需按钮命令,即出现一个自定义对话框,在这个对话框中所显示的命令,就是你要的命令名称。
三、如何利用VBA代码或者脚本代码批量修改word文档的正文标题
操作步骤。
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。
第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。
Private Sub CommandButton1_Click()Application.ScreenUpdating = FalseDim myPas As String, myPath As String, i As Integer, myDoc As DocumentWith Application.FileDialog(msoFileDialogFolderPicker).Title = "选择目标文件夹"If .Show = -1 ThenmyPath = .SelectedItems(1)ElseExit SubEnd IfEnd WithmyPas = InputBox("请输入打开密码:")With Application.FileSearch.LookIn = myPath.FileType = msoFileTypeWordDocumentsIf .Execute > 0 ThenFor i = 1 To .FoundFiles.CountSet myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas)Selection.Find.ClearFormattingSelection.Find.Replacement.ClearFormattingWith Selection.Find.Text = "大家好".Replacement.Text = "你好".Forward = True.Wrap = wdFindAsk.Format = False.MatchCase = False.MatchWholeWord = False.MatchByte = True.MatchWildcards = False.MatchSoundsLike = False.MatchAllWordForms = FalseEnd WithSelection.Find.Execute Replace:=wdReplaceAllmyDoc.SavemyDoc.CloseSet myDoc = NothingNextEnd IfEnd WithApplication.ScreenUpdating = TrueEnd Sub第五,保存上面代码,退出VB编辑模式,返回Word文档界面。第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。
四、用vba打开word模板并修改后保存
1、打开Word文件的 VBA编辑器,快捷键 Alt+F11,右击【ThisDocument】-》 【插入模块】; 用VBA代码设置Word自动保存的步骤 2、双击刚才插入的【模块1】,添加如下代码: Sub 自动备份() Dim NewTime NewTime = Now + TimeValue(“00:05:10”) Dim myPath$, myName$ myPath = ActiveDocument.Path myName = Left$(ActiveDocument.Name, Len(ActiveDocument.Name) - 4) ChangeFileOpenDirectory myPath ActiveDocument.SaveAs FileName:=myName & “_temp.doc”, ReadOnlyRecommended:=True ActiveDocument.SaveAs FileName:=myName & “.doc”, ReadOnlyRecommended:=False Application.OnTime NewTime, “自动备份” CreateObject(“Wscript.shell”).popup “备份成功,备份文件名为:” & myName & “_temp.doc”, 2, “提示!2秒后自动关闭!” End Sub 用VBA代码设置Word自动保存的步骤 用VBA代码设置Word自动保存的步骤 3、双击【ThisDocument】并在其中 添加如下代码: Private Sub Document_Open() Call 自动备份 End Sub 用VBA代码设置Word自动保存的步骤 4、默认自动备份时间为5min,如要调整请修改【模块1】中一句代码:如图中红框所示: 时间格式为:HH : mm : ss 用VBA代码设置Word自动保存的步骤 5、保存代码及文件,且关闭word并重新打开,重新打开点击【选项】-》 【启用此内容】,如图: 用VBA代码设置Word自动保存的步骤 6、默认备份文件名为:【原文件名_temp,Lee.doc】且为只读,提示对话框2s后自动关闭。
备份效果显示如下: 。
五、通过VBA如何修改WORD页眉
其实通过宏录制你就完全可以明白,有些问题是可以自己轻易解决的,宏录制是学习vba很重要的一个步骤,自己要多尝试 :
如下
If ActiveWindow.View.SplitSpecial wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveDocument.AttachedTemplate.BuildingBlockEntries(" 空白").Insert Where:= _
Selection.Range, RichText:=True
Selection.TypeText Text:="暗暗暗暗"
六、Vba全面修改Word段落属性的有效代码是什么
下面的WAPP是事先定义的word文档工程变量。
以下代码为通过VBA代码修改Word段落的缩进、段落间距、行距、分页等。 //段落格式设定 WApp.Selection.ParagraphFormat.LeftIndent = WApp.CentimetersToPoints(float.Parse("0"));//左缩进 WApp.Selection.ParagraphFormat.RightIndent = WApp.CentimetersToPoints(float.Parse("0"));//右缩进 WApp.Selection.ParagraphFormat.SpaceBefore =float.Parse("0");//段前间距 WApp.Selection.ParagraphFormat.SpaceBeforeAuto =0;// WApp.Selection.ParagraphFormat.SpaceAfter = float.Parse("0");//段后间距 WApp.Selection.ParagraphFormat.SpaceAfterAuto = 0;// WApp.Selection.ParagraphFormat.LineSpacingRule = Microsoft.Office.Interop.Word.WdLineSpacing.wdLineSpaceSingle;//单倍行距 WApp.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphJustify;//段落2端对齐 WApp.Selection.ParagraphFormat.WidowControl = 0;//孤行控制 WApp.Selection.ParagraphFormat.KeepWithNext = 0;//与下段同页 WApp.Selection.ParagraphFormat.KeepTogether = 0;//段中不分页 WApp.Selection.ParagraphFormat.PageBreakBefore = 0;//段前分页 WApp.Selection.ParagraphFormat.NoLineNumber = 0;//取消行号 WApp.Selection.ParagraphFormat.Hyphenation = 1;//取消段字 WApp.Selection.ParagraphFormat.FirstLineIndent = WApp.CentimetersToPoints(float.Parse("0"));//首行缩进 WApp.Selection.ParagraphFormat.OutlineLevel = Microsoft.Office.Interop.Word.WdOutlineLevel.wdOutlineLevelBodyText; WApp.Selection.ParagraphFormat.CharacterUnitLeftIndent = float.Parse("0"); WApp.Selection.ParagraphFormat.CharacterUnitRightIndent = float.Parse("0"); WApp.Selection.ParagraphFormat.CharacterUnitFirstLineIndent = float.Parse("0"); WApp.Selection.ParagraphFormat.LineUnitBefore = float.Parse("0"); WApp.Selection.ParagraphFormat.LineUnitAfter = float.Parse("0"); WApp.Selection.ParagraphFormat.AutoAdjustRightIndent = 1; WApp.Selection.ParagraphFormat.DisableLineHeightGrid =0; WApp.Selection.ParagraphFormat.FarEastLineBreakControl =1; WApp.Selection.ParagraphFormat.WordWrap = 1; WApp.Selection.ParagraphFormat.HangingPunctuation = 1; WApp.Selection.ParagraphFormat.HalfWidthPunctuationOnTopOfLine = 0; WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndAlpha = 1; WApp.Selection.ParagraphFormat.AddSpaceBetweenFarEastAndDigit = 1; WApp.Selection.ParagraphFormat.BaseLineAlignment = Microsoft.Office.Interop.Word.WdBaselineAlignment.wdBaselineAlignAuto;。
七、word 使用vba 怎么改一个内容
操作步骤。
第一,首先将需要批量替换的多个Word文档放在同一文件夹下面。
第二,新建一空白Word文档,右击空白工具栏,单击“控件工具箱”,就可以看到屏幕上调出的控件工具箱。
第三,在控件工具箱上单击“命令按钮”,文档中就放置了一个按钮了。
第四,双击该按钮,进入VB代码编写模式,将以下代码复制进去。
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim myPas As String, myPath As String, i As Integer, myDoc As Document
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "选择目标文件夹"
If .Show = -1 Then
myPath = .SelectedItems(1)
Else
Exit Sub
End If
End With
myPas = InputBox("请输入打开密码:")
With Application.FileSearch
.LookIn = myPath
.FileType = msoFileTypeWordDocuments
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Set myDoc = Documents.Open(FileName:=.FoundFiles(i), Passworddocument:=myPas)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "大家好"
.Replacement.Text = "你好"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
myDoc.Save
myDoc.Close
Set myDoc = Nothing
Next
End If
End With
Application.ScreenUpdating = True
End Sub
第五,保存上面代码,退出VB编辑模式,返回Word文档界面。
第六,单击选中该按钮,再单击控件工具箱的第一个按钮“退出设计模式”。
第七,进行测试:点击按钮,选择要放置多个WORD文档所在的文件夹,确定后即可完成!注意如果WORD文档没有加密的话,密码项就不填,直接确认。就会发现该文件夹下面的所有WORD文档中“大家好”已被替换为“你好”了。
八、请问如何用VBA批量修改word的文档属性
Sub test()
FName = Dir("D:\Downloads\*.doc")
Do While FName ""
Documents.Open FileName:="D:\Downloads\" & FName
ActiveDocument.BuiltInDocumentProperties("Title") = "标题"
On Error Resume Next
ActiveDocument.CustomDocumentProperties("myTitle").Delete
Err.Clear
On Error GoTo 0
Documents(1).CustomDocumentProperties.Add _
Name:="myTitle", LinkToContent:=False, Value:="我的标题", _
Type:=msoPropertyTypeString
ActiveDocument.Save
ActiveDocument.Close
FName = Dir
Loop
End Sub
九、VBA如何调出word和excel查找/替换对话框
VBA中,可以利用下面的语句来调用Excel内置对话框:
Application.Dialogs(代码).Show
其中代码与对话框名称对应表如下:
代码 窗口名称 代码 窗口名称 代码 窗口名称 代码 窗口名称 代码 窗口名称
1 打开 54 删除单元格 190 字体 320 选项-视图 496 标签区域
2 编辑链接 55 插入 191 合并计算 321 加载宏 509 工作表背景
5 另存为 61 定义名称 192 排序 323 附加工具栏 525 数据有效性
6 删除文档 62 指定名称 198 单变量求解 342 插入图片 583 条件格式
7 页面设置 63 定位 199 编辑成组工作表 354 插入 596 插入超链接
8 打印内容 64 查找 203 创建组 355 选项-123的帮助 620 保护共享工作簿
9 打印机设置 84 单元格格式-图案 212 样式 356 选项-常规 647 选项-国际
12 重排窗口 91 分列 220 自定义 370 高级筛选 653 发布为网页
17 宏 94 取消隐藏 222 打印预览 381 单元格格式-字体 656 拼音属性
23 设置打印标题 95 工作区选项 229 样式 384 取消隐藏 666 导入文本文件
26 字体 103 激活 256 显示比例 386 重命名工作表 667 新建-Web_查询
27 显示选项 108 复制图片 259 对象 415 分类汇总 674 Web-选项-常规
28 保护工作表 110 定义名称 269 自动套用格式 417 保护工作簿 683 Web-选项-浏览器
32 重算选项 111 单元格格式-数字 276 自定义 447 自动筛选 684 Web-选项-文件
39 排序 119 新建 281 移动或复制工作表 450 插入函数 685 Web-选项-图片
40 序列 127 行高 282 移动或复制工作表 458 选项-自定义序列 686 Web-选项-编码
41 模拟运算表 130 替换 283 移动或复制工作表 472 标准列宽 687 Web-选项-字体
42 单元格格式-数字 132 定位条件 284 重命名工作表 473 合并方案 709 公式求值
43 单元格格式-对齐 134 字体 285 保存工作区 474 工作簿属性 731 基本文件搜索
44 字体 137 拆分 302 插入 475 打开 753 选项-保存
45 单元格格式-边框 142 设置 305 方案管理器 476 单元格格式-字体 755 选项-拼写检查
46 单元格格式-保护 145 另存为 307 添加方案 481 共享工作簿 771 符号
47 列宽 150 字体 312 数据透视表和数据透视图向导 485 自动更正 773 Web-选项-浏览器
52 清除 154 插入批注 318 选项-重新计算 493 视图管理器 796 创建列表
53 选择性粘贴 161 选项-颜色 319 选项-编辑 494 添加视图 817 信息检索