运用宏批量处理图片
录制宏:批量处理图像大小
录制宏:批量处理图像大小
如果照片像素不一,只能采用如下办法了:
1、将表格的行列宽单位改成像素,记录好行列宽的像数值(如行100像素,列70像素),修改方法
1.1从“工具”菜单中--“选项”对话框--“常规”-选中“度量单位”选择框下方的“为Html功能显示像素的复选框”
1.2查看表格行列宽度时就显示单位就为“像素”了
2、先插入一个照片,点击照片,录制“调整图像像素”的一个宏,创建该宏的按钮,
2.1工具-宏-录制新宏-指定宏名--点击将宏指定到工具栏--弹出自定义窗口,拖动右边命令栏中的命令放到横置的工具栏中间生成一个按钮--右击该按钮--重命名为"TZ"--关闭自定义窗口,进入录制阶段
2.2录制阶段:点击图片工具栏中的“设置图片格式”--大小--取消锁定纵横比例--输入高度(100像素,宽度70像素)-确定----停止录制宏
3、每次插入图片时,点击该按钮,就可以实现拉至表格的大小了
如果不明白,我可以将该操作过程的录像发给你。
VBA中的自动化图像处理技巧与应用
VBA中的自动化图像处理技巧与应用在VBA中,自动化图像处理技巧和应用已经成为许多开发人员的关注焦点。
VBA是Visual Basic for Applications的缩写,是一种强大的编程语言,可在Microsoft Office套件中使用。
通过使用VBA,用户可以自定义和调整Office应用程序的功能,包括图像处理。
自动化图像处理是指使用编程技术来批量处理图像,从而提高效率并减少人工操作。
在VBA中,有许多技巧和方法可以帮助我们实现自动化图像处理。
接下来,我们将介绍一些常见的技巧和它们的应用。
1. 图像格式转换:VBA可以帮助我们将图像从一种格式转换为另一种格式。
通过使用VBA的图像处理函数和库,我们可以将图像保存为各种格式,如JPEG、PNG、BMP等。
这对于批量转换图像格式的任务非常有用,例如将一批图像从JPEG转换为PNG格式。
2. 图像压缩:VBA也可以帮助我们压缩图像以减小文件大小。
通过使用VBA的图像处理库,我们可以调整图像的质量和压缩率,从而减小文件大小。
这对于需要通过电子邮件或网络传输大量图像的情况非常有用。
3. 图像裁剪和调整大小:使用VBA,我们可以自动裁剪和调整图像的大小。
通过指定需要裁剪或调整的图像的位置和尺寸,我们可以使用VBA的图像处理函数来进行自动化裁剪和调整。
这非常适用于需要将大量图像调整为相同大小或指定尺寸的任务。
4. 图像滤镜和特效:通过使用VBA的图像处理库和函数,我们可以添加各种滤镜和特效到图像上。
例如,我们可以通过VBA来应用灰度化、模糊、锐化等效果,从而改变图像的外观和效果。
5. 批量图像处理:使用VBA,我们可以批量处理大量的图像。
通过编写循环和条件语句,我们可以自动化地处理一组图像,并根据需要应用各种图像处理技术。
这对于处理大批量的图像任务非常有用,如图像批量加水印、批量调整亮度对比度等。
6. OCR技术:光学字符识别(OCR)是一种将图片中的文字转换为文本的技术。
宏命令将图片批量替换成统一大小
宏命令将图片批量替换成统一大小步骤:1.点击【文件】-【选项】,在弹出的窗口中选择【自定义功能区】,勾选开发工具选项后,点击【确定】,如下图:2.会在菜单上方出现开发工具的相关功能菜单,选择【开发工具】,点击【宏】,如下图:3.点击【宏】后,弹出提示框,在宏名处输入宏名“setpicsize”点击创建按钮,如下图:4.在弹出的VBA窗口中将如下代码复制到其中,如下图:统一替换图片大小的VBA代码如下(单引号后面的内容为备注):'1.改变图片大于14.5cm的宽度'注:高跟宽的数值单位为px,而word中的单位为cm(1px约等于0.0352cm)Sub setpicsize()Dim j '计数图片个数For j = 1 To ActiveDocument.InlineShapes.Count '文件中图片总个数,图片类型为inlineshapespicheight = ActiveDocument.InlineShapes(j).Height '高度赋值picwidth = ActiveDocument.InlineShapes(j).Width '宽度赋值If (ActiveDocument.InlineShapes(j).Width > 375 And ActiveDocument.InlineShapes(j).Width < 415) Then '判断图片宽度范围,将宽度大于13.23cm的图片,小于14.68的图片统一缩放ActiveDocument.InlineShapes(j).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '图片居中ActiveDocument.InlineShapes(j).Width = 411 '设置宽度为411px,约14.5cm ActiveDocument.InlineShapes(j).Height = picheight * (411 / picwidth) '设置图片高度,根据设置的宽度值等比例缩放图片高度ElseIf (ActiveDocument.InlineShapes(j).Width > 417) Then '判断图片宽度范围,将宽度大于14.7cm的图片统一缩放ActiveDocument.InlineShapes(j).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter '图片居中ActiveDocument.InlineShapes(j).Width = 411 '设置宽度为411px,约14.5cm ActiveDocument.InlineShapes(j).Height = picheight * (411 / picwidth) '设置图片高度,根据设置的宽度值等比例缩放图片高度End IfNext jEnd Sub注意:(1)修改图片尺寸时,代码运行前需要根据实际情况进行修改图片尺寸的大小范围限制代码,图中标注处所示(2)修改图片尺寸时,需计算修改的图片的宽高值,因为图片的高跟宽的数值单位为px,而word中的单位为cm,根据每台电脑不同的分辨率,1px约等于0.0352cm (3)图片替换之前文档最好先保存副本,因为运行宏后的文档无法撤销操作,如果操作错误,只能通过关闭文档时,选择不保存后,重新打开(4)代码可用英文状态下的单上引号进行备注,删掉不影响代码的运行(5)如修改图片尺寸的代码无需修改,可直接在点击【宏】后,在弹出提示框中选择宏名“setpicsize”,点击运行按钮进行操作(6)一次性修改的文档中图片过多时,文档会未响应一小段时间,请耐心等待即可5.点击运行按钮,运行统一替换图片尺寸代码。
批量处理和单个处理word图片大小和比例的宏
设定单个图片大小的宏:Sub 宏5()Selection.InlineShapes(1).LockAspectRatio = msoFalse '解除纵横比锁定Dim h!, w!h = Selection.InlineShapes(1).Heightw = Selection.InlineShapes(1).WidthSelection.InlineShapes(1).Height = 627 '设置图片高度为627px Selection.InlineShapes(1).Width = 407 '设置图片宽度407pxEnd Sub设定单个图片比例的宏:Sub 宏3()Selection.InlineShapes(1).LockAspectRatio = msoFalse '解除纵横比锁定Dim h!, w!h = Selection.InlineShapes(1).Heightw = Selection.InlineShapes(1).WidthSelection.InlineShapes(1).Height = h * 1.25 '设置图片高度比例为125%Selection.InlineShapes(1).Width = w * 0.77 '设置图片宽度比例为77% End Sub批量设定图片大小的宏:Sub setpicsize() '设置图片大小Dim n '图片个数On Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片ActiveDocument.InlineShapes(n).LockAspectRatio = msoFalse ActiveDocument.InlineShapes(n).Height = 400 '设置图片高度为400pxActiveDocument.InlineShapes(n).Width = 300 '设置图片宽度300pxNext nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片Selection.InlineShapes(n).LockAspectRatio = msoFalse ActiveDocument.Shapes(n).Height = 400 '设置图片高度为400px ActiveDocument.Shapes(n).Width = 300 '设置图片宽度300px Next nEnd Sub批量设定图片比例的宏Sub 宏1()Dim n '图片个数Dim picwidthDim picheightOn Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片ActiveDocument.InlineShapes(n).LockAspectRatio = msoFalse picheight = ActiveDocument.InlineShapes(n).Heightpicwidth = ActiveDocument.InlineShapes(n).Width ActiveDocument.InlineShapes(n).Height = picheight * 1.1 '设置高度为1.1倍ActiveDocument.InlineShapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍Next nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片Selection.InlineShapes(n).LockAspectRatio = msoFalse picheight = ActiveDocument.Shapes(n).Heightpicwidth = ActiveDocument.Shapes(n).Width ActiveDocument.Shapes(n).Height = picheight * 1.1 '设置高度为1.1倍ActiveDocument.Shapes(n).Width = picwidth * 1.1 '设置宽度为1.1倍Next nEnd Sub。
批量处理图片宏代码
ActiveDocument.Shapes(n).Width = 5 '
Next n
End Sub
代码4 不锁纵横比 (这个有效。代码同2)
Sub setpicsize() 'Resume Next '
ActiveDocument.InlineShapes(n).LockAspectRatio = msoFalse '
ActiveDocument.InlineShapes(n).Height = 320 '
ActiveDocument.InlineShapes(n).Width = 425 '/经调试后,此处高度和宽度必须很宽,代码内分度值为像素,并非厘米,因为Inline的缘故?/
ActiveDocument.InlineShapes(n).Width =5 *28.35 '/同上,前面的3.5和5.5可以理解为像素/
Next n
End Sub
代码5 仅仅解除纵横比
Sub () '
Dim n '
On Error Resume Next '
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes
'iShape.Width = CentimetersToPoints(15)
Next
End Sub
代码2 不锁定纵横比 (有效)
Sub setpicsize() '
Dim n '
(完整word版)用宏批量调整word中图片版式、大小、方向
Sub 图片对齐() (1)Sub 图片大小() (1)Sub 浮于文字上方() ................................................................................................... 错误!未定义书签。
Sub 浮于文字上方() . (4)Sub 连续() (4)Sub 版式转换() (4)Sub 图片方向() (5)Sub 图片对齐()Application.ScreenUpdating = False '关闭屏幕更新Dim nOn Error Resume NextFor n = 1 To ActiveDocument.Shapes.CountActiveDocument.Shapes(n).SelectSelection.ShapeRange.RelativeHorizontalPosition = _wdRelativeHorizontalPositionMarginSelection.ShapeRange.RelativeVerticalPosition = _wdRelativeVerticalPositionMarginSelection.ShapeRange.Left = wdShapeRightSelection.ShapeRange.Top = wdShapeBottomSelection.ShapeRange.LockAnchor = FalseyoutInCell = TrueSelection.ShapeRange.WrapFormat.AllowOverlap = FalseSelection.ShapeRange.WrapFormat.Side = wdWrapBothNextApplication.ScreenUpdating = True '恢复屏幕更新End SubSub 图片大小()On Error Resume NextDim mywidthDim myheightApplication.ScreenUpdating = False '关闭屏幕更新mywidth = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,宽度根据输入的高度数值自动调整;", Title:="请输入图片宽度", Default:="0")) * 28.35myheight = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,高度根据输入的宽度数值自动调整;", Title:="请输入图片高度", Default:="0")) * 28.35'------------------------------------------------------------------'调整嵌入式图形Dim pic As InlineShapeFor Each pic In ActiveDocument.InlineShapesIf mywidth = "0" Thenpic.Height = myheightpic.ScaleWidth = pic.ScaleHeightElseIf myheight = "0" Thenpic.Width = mywidthpic.ScaleHeight = pic.ScaleWidthElsepic.Width = mywidthpic.Height = myheightEnd IfNext'调整浮动式图形Dim tu As ShapeFor Each tu In ActiveDocument.ShapesIf mywidth = "0" Thentu.Height = myheightElseIf myheight = "0" Thentu.Width = mywidthElsetu.LockAspectRatio = msoFalsetu.Width = mywidthtu.Height = myheightEnd IfNextApplication.ScreenUpdating = True '恢复屏幕更新End SubSub 浮于文字上方()Dim oShape As Variant, tu As Shape, iApplication.ScreenUpdating = False '关闭屏幕更新On Error Resume Next'调整嵌入图形为浮于文字上方,并旋转90度For Each oShape In ActiveDocument.InlineShapesSet oShape = oShape.ConvertToShapeActiveDocument.InlineShapes(i).SelectWith oShape.WrapFormat.Type = 3' (去除.Zorder行.WrapFormat.Type = shapeType四周形.WrapFormat.Type = wdWrapTight紧密形改为.ConvertToInlineShape嵌入形).ZOrder 4 '4浮于文字上方5衬于下方.Rotation = -90#End WithNext'调整其它图形为浮于文字上方,并旋转90度For Each tu In ActiveDocument.ShapesActiveDocument.Shapes(i).SelectWith tu.WrapFormat.Type = 3' (去除.Zorder行.WrapFormat.Type = shapeType四周形.WrapFormat.Type = wdWrapTight紧密形改为.ConvertToInlineShape嵌入形).ZOrder 4 '4浮于文字上方5衬于下方.Rotation = -90#End WithNextApplication.ScreenUpdating = True '恢复屏幕更新End SubSub 浮于文字上方()Dim oShape As Variant, iApplication.ScreenUpdating = False '关闭屏幕更新On Error Resume NextFor Each oShape In ActiveDocument.InlineShapesSet oShape = oShape.ConvertToShapeActiveDocument.InlineShapes(i).Select '选中图片With oShape.ZOrder 4 '选中图片版式调为浮于文字上方.Rotation = -90# '选中图片向左旋转90度End WithNextApplication.ScreenUpdating = True '关闭屏幕更新End SubSub 连续()Call 浮于文字上方Call 图片大小Call 图片对齐End SubSub 版式转换()Dim oShape As Variant, shapeType As WdWrapTypeOn Error Resume NextIf MsgBox("Y将图片由嵌入式转为浮动式,N将图片由浮动式转为嵌入式", 68) = 6 Then shapeType = Val(InputBox(Prompt:="请输入图片版式:0=四周型,1=紧密型, " & vbLf & _"3=衬于文字下方,4=浮于文字上方", Default:=0)) For Each oShape In ActiveDocument.InlineShapesSet oShape = oShape.ConvertToShapeWith oShapeSelect Case shapeTypeCase 0, 1.WrapFormat.Type = shapeTypeCase 3.WrapFormat.Type = 3.ZOrder 5Case 4.WrapFormat.Type = 3.ZOrder 4Case ElseExit SubEnd Select.WrapFormat.AllowOverlap = FalseEnd WithNextElseFor Each oShape In ActiveDocument.ShapesoShape.ConvertToInlineShapeNextEnd IfEnd SubSub 图片方向()Dim nOn Error Resume NextFor n = 1 To ActiveDocument.Shapes.CountActiveDocument.Shapes(n).IncrementRotation -90#Next nEnd Sub。
批量删除WORD文档中的图片-宏+替换
批量删除WORD文档中的图片有时要一次性删除某个Word文档中所有图片.一张一张地寻找图片并按下DEL键删除真是麻烦死了,这时你有一般两种方法可以选择:一、可以让“查找和替换”功能帮你的忙,在Word中同时按下“Ctrl+H”键打开“查找和替换”对话框,点击“替换”标签中的“更多”按钮,再选择“特殊格式→图形”项,这时会在“查找内容”中自动输入“^g”,最后直接按下“全部替换”按钮即可彻底删除所有图片。
(想要知道高级的查找替换功能,可以搜索word的通配符、正则表达式等内容)二、用宏程序删除WORD图片有时在word中使用第一种方法不能奏效,可以使用宏代码的方式进行删除,如果一次无法删除完全,可以多运行几遍。
代码如下:Sub Macro1()For Each ShapeRange In ActiveDocument.ShapesShapeRange.DeleteNext ShapeRangeEnd Sub附: Word通配符查找详解(Wildcards)通配符使用规则如下:任意单个字符键入?例如,s?t 可查找“sat”和“set”。
任意字符串键入*例如,s*d 可查找“sad”和“started”。
单词的开头键入<例如,<(inter) 查找“interesting”和“intercept”,但不查找“splintered”。
单词的结尾键入>例如,(in)> 查找“in”和“within”,但不查找“interesting”。
指定字符之一键入[ ]例如,w[io]n 查找“win”和“won”。
指定范围内任意单个字符键入[-]例如,[r-t]ight 查找“right”和“sight”。
必须用升序来表示该范围。
中括号内指定字符范围以外的任意单个字符键入[!x-z]例如,t[!a-m]ck 查找“tock”和“tuck”,但不查找“tack”和“tick”。
n 个重复的前一字符或表达式键入{n}例如,fe{2}d 查找“feed”,但不查找“fed”。
【Word技巧】-如何用宏程序批量处理图片大小
Word技巧
如何用宏程序批量处理图片大小
1、统一图片大小+解除图片纵横比限制
Sub 图片统一大小() '设置图片大小
Dim n '图片个数
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片ActiveDocument.InlineShapes(n).LockAspectRatio = msoFalse '解除纵横比锁定
ActiveDocument.InlineShapes(n).Height = 5 * 28.35 '设置图片高度为5cm(1cm 等于28.35px)
ActiveDocument.InlineShapes(n).Width = 5 * 28.35 ' 设置图片宽度5cm
Next n
End Sub
注:使用前要考虑各种特殊情况,如剪报中的logo也是会受到影响。
2、统一图片大小(不解除纵横比,可以仅限定宽或高)
Sub 统一图片大小()
Dim iShape As InlineShape
For Each iShape In ActiveDocument.InlineShapes
iShape.LockAspectRatio = msoTrue
iShape.Height = CentimetersToPoints(5)
iShape.Width = CentimetersToPoints(5)
Next
End Sub
以上代码直接ALT+F11 添加到宏程序中运行即可,标红部分可以自行修改。
Word采用VBA宏快速调整多个表格和图片格式-张茂林1018
Word里表格、图片格式处理宏使用说明张茂林提醒您注意:执行宏命令很难撤销回原状,建议备份后再操作1、按Alt+F8快捷键打开宏窗口,输入任意宏名称,点击创建。
2、在打开的代码窗口下方粘贴本文提供的代码。
3、保存代码后关闭宏代码窗口4、打开Word的文件菜单,选项里找到自定义功能区5、选择宏命令,添加到右侧6、可以选择新建选项卡,命名为图表格式7、确定后,Word菜单栏里将出现对应的菜单8、选中需要调整表格或者图片的区域,避免超选。
特别是部分文档的表格、图片不需要调整(如初设文件的黑框、公式编辑器的公式图片),不需要调整的部分不能选中。
9、点击选中所有表格10、点击选中所有表格,命令执行完成后,该区域所有表格被选中11、选中后,可以用设计菜单一次调整多个表格样式,用开始菜单调整多个表格内的字体、字号、段落格式等12、图片调整方法与表格类似,先选中需要调整图片的区域。
13、点击所有图片。
14、输入图片的高度、长度值。
本报告建议值高8cm,长12.9cm。
调整后全文的图片长宽均一致,如下15、宏代码Sub SelectAllTables()‘本小程序由CPECC西南管道室张茂林编写Dim aTable As TableApplication.ScreenUpdating = False'判断文档是否被保护If ActiveDocument.ProtectionType = wdAllowOnlyFormFields ThenMsgBox "文档已保护,此时不能选中多个表格!"Exit SubEnd If'删除所有可编辑的区域ActiveDocument.DeleteAllEditableRanges wdEditorEveryone'添加可编辑区域If Selection.Tables.Count >= 1 ThenFor Each aTable In Selection.TablesaTable.Range.Editors.Add wdEditorEveryoneNextActiveDocument.SelectAllEditableRanges wdEditorEveryoneActiveDocument.DeleteAllEditableRanges wdEditorEveryoneApplication.ScreenUpdating = TrueEnd IfMsgBox "张茂林提醒您,选中文档区域表格选择完成"End SubSub 选中区域的所有图片()'本小程序由CPECC西南管道室张茂林编写' pic Macro' 宏由CPECC 张茂林创建'Dim n '图片个数Dim picwidthDim picheightpicheight = InputBox("请输入图片调整高度:厘米", "输入框", 9.9) '输入想调整的图片高度,默认高度7.8cmpicwidth = InputBox("请输入图片调整宽度:厘米", "输入框", 11.72) '输入想调整的图片宽度,默认宽度12.73cmOn Error Resume Next '忽略错误For n = 1 To Selection.InlineShapes.Count 'InlineShapes类型图片With Selection.InlineShapes(n)' .LockAspectRatio = msoTrue.LockAspectRatio = msoFalse.Height = picheight * 28.39.Width = picwidth * 28.39.Range.Paragraphs(1).Range.ParagraphFormat.Alignment = wdAlignParagraphCenter.Fill.Transparency = 0With .Line.Weight = 0.25.Style = msoLineSingle.Visible = msoTrue.DashStyle = msoLineSolid.ForeColor.RGB = RGB(0, 0, 0)End With.LockAspectRatio = msoTrueEnd WithNext nEnd SubSub 选中的单个表格格式()'' tab1 Macro'With Selection.ParagraphFormat.CharacterUnitLeftIndent = 0.CharacterUnitRightIndent = 0.CharacterUnitFirstLineIndent = 0.LeftIndent = CentimetersToPoints(0).RightIndent = CentimetersToPoints(0).FirstLineIndent = CentimetersToPoints(0).SpaceBefore = 0.SpaceBeforeAuto = False.SpaceAfter = 0.SpaceAfterAuto = False.LineSpacingRule = wdLineSpaceSingle.Alignment = wdAlignParagraphCenter.WidowControl = True.KeepWithNext = False.KeepTogether = False.PageBreakBefore = False.NoLineNumber = False.Hyphenation = True.OutlineLevel = wdOutlineLevelBodyText.LineUnitBefore = 0.LineUnitAfter = 0.AutoAdjustRightIndent = True.DisableLineHeightGrid = False.FarEastLineBreakControl = True.WordWrap = True.HangingPunctuation = True.HalfWidthPunctuationOnTopOfLine = False.AddSpaceBetweenFarEastAndAlpha = True.AddSpaceBetweenFarEastAndDigit = True.BaseLineAlignment = wdBaselineAlignAutoEnd WithSelection.Font.Size = 10If Selection.Tables.Count >= 1 ThenFor Each aTable In Selection.TablesWith aTable.Rows.HeightRule = wdRowHeightAtLeast.Rows.Height = CentimetersToPoints(0.7).Rows.AllowBreakAcrossPages = True.Rows.HeadingFormat = True.Borders(wdBorderDiagonalDown).LineStyle = wdLineStyleNone.Borders(wdBorderDiagonalUp).LineStyle = wdLineStyleNone.Borders.Shadow = False' .Cells.VerticalAlignment = wdCellAlignVerticalCenter.AutoFitBehavior Behavior:=wdAutoFitContent.AutoFitBehavior Behavior:=wdAutoFitWindowEnd WithWith aTableWith .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth050pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderRight).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth050pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderTop).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth050pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth050pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth050pt.Color = wdColorAutomaticEnd WithWith .Borders(wdBorderVertical).LineStyle = wdLineStyleSingle.LineWidth = wdLineWidth050pt.Color = wdColorAutomaticEnd WithWith .Rows.AllowBreakAcrossPages = 1.HeadingFormat = False.Alignment = wdAlignRowCenter.WrapAroundText = 0End WithWith Options.DefaultBorderLineStyle = wdLineStyleSingle.DefaultBorderLineWidth = wdLineWidth050pt.DefaultBorderColor = wdColorAutomaticEnd WithEnd WithNext aTableEnd IfEnd Sub。
用宏批量调整word中图片版式、大小、方向
用宏批量调整word中图片版式、大小、方向Sub 图片对齐() (2)Sub 图片大小() (3)Sub 浮于文字上方()................... 错误!未定义书签。
Sub 浮于文字上方().. (9)Sub 连续() (10)Sub 版式转换() (11)Sub 图片方向() (14)Sub 图片对齐()Application.ScreenUpdating = False '关闭屏幕更新Dim nOn Error Resume NextActiveDocument.Shapes(n).Select orizontalPosition = _wdRelativeHorizontalPositionMarginwdRelativeVerticalPositionMarginNextApplication.ScreenUpdating = True '恢复屏幕更新End SubSub 图片大小()On Error Resume NextDim mywidthDim myheightApplication.ScreenUpdating = False '关闭屏幕更新mywidth = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,宽度根据输入的高度数值自动调整;", Title:="请输入图片宽度", Default:="0")) * 28.35myheight = Val(InputBox(Prompt:="单位为厘米(cm);如果输入为0,则图片保持原始纵横比,高度根据输入的宽度数值自动调整;", Title:="请输入图片高度", Default:="0")) * 28.35'------------------------------------------------------------------'调整嵌入式图形Dim pic As InlineShapeFor Each pic In ActiveDocument.InlineShapes If mywidth = "0" Thenpic.Height = myheightpic.ScaleWidth = pic.ScaleHeightElseIf myheight = "0" Thenpic.Width = mywidthpic.ScaleHeight = pic.ScaleWidthElsepic.Width = mywidthpic.Height = myheightEnd IfNext'调整浮动式图形Dim tu As ShapeFor Each tu In ActiveDocument.ShapesIf mywidth = "0" Thentu.Height = myheightElseIf myheight = "0" Thentu.Width = mywidthElsetu.LockAspectRatio = msoFalsetu.Width = mywidthtu.Height = myheightEnd IfNextApplication.ScreenUpdating = True '恢复屏幕更新End SubSub 浮于文字上方()Dim oShape As Variant, tu As Shape, i Application.ScreenUpdating = False '关闭屏幕更新On Error Resume Next'调整嵌入图形为浮于文字上方,并旋转90度For Each oShape In ActiveDocument.InlineShapesSet oShape = oShape.ConvertToShapeActiveDocument.InlineShapes(i).SelectWith oShape.WrapFormat.Type = 3' (去除.Zorder行.WrapFormat.Type = shapeType四周形.WrapFormat.Type = wdWrapTight紧密形改为.ConvertToInlineShape嵌入形).ZOrder 4 '4浮于文字上方5衬于下方.Rotation = -90#End WithNext'调整其它图形为浮于文字上方,并旋转90度For Each tu In ActiveDocument.ShapesActiveDocument.Shapes(i).SelectWith tu.WrapFormat.Type = 3' (去除.Zorder行.WrapFormat.Type = shapeType四周形.WrapFormat.Type = wdWrapTight紧密形改为.ConvertToInlineShape嵌入形).ZOrder 4 '4浮于文字上方5衬于下方.Rotation = -90#End WithNextApplication.ScreenUpdating = True '恢复屏幕更新End SubSub 浮于文字上方()Dim oShape As Variant, iApplication.ScreenUpdating = False '关闭屏幕更新On Error Resume NextFor Each oShape In ActiveDocument.InlineShapesSet oShape = oShape.ConvertToShapeActiveDocument.InlineShapes(i).Select '选中图片With oShape.ZOrder 4 '选中图片版式调为浮于文字上方.Rotation = -90# '选中图片向左旋转90度End WithNextApplication.ScreenUpdating = True '关闭屏幕更新End SubSub 连续()Call 浮于文字上方Call 图片大小Call 图片对齐End SubSub 版式转换()Dim oShape As Variant, shapeType As WdWrapTypeOn Error Resume NextIf MsgBox("Y将图片由嵌入式转为浮动式,N 将图片由浮动式转为嵌入式", 68) = 6 ThenshapeType = Val(InputBox(Prompt:="请输入图片版式:0=四周型,1=紧密型, " & vbLf & _"3=衬于文字下方,4=浮于文字上方", Default:=0)) For Each oShape In ActiveDocument.InlineShapesSet oShape = oShape.ConvertToShapeWith oShapeSelect Case shapeTypeCase 0, 1.WrapFormat.Type = shapeTypeCase 3.WrapFormat.Type = 3.ZOrder 5Case 4.WrapFormat.Type = 3.ZOrder 4Case ElseExit SubEnd Select.WrapFormat.AllowOverlap = FalseEnd WithNextElseFor Each oShape In ActiveDocument.ShapesoShape.ConvertToInlineShapeNextEnd IfEnd SubSub 图片方向()Dim nOn Error Resume Next ActiveDocument.Shapes(n).IncrementRotation -90#Next nEnd Sub。
运用宏批量处理图片
摘要:在制作标书或者编制业绩时,经常遇到需要大批量的处理图片的情况,这是极其庞大的工作量,手动处理耗时而且不美观,现将自己总结出来的小技巧分享给大家运用宏批量处理图片摘要:在制作标书或者编制业绩时,经常遇到需要大批量的处理图片的情况,这是极其庞大的工作量,手动处理耗时而且不美观,现将自己总结出来的小技巧分享给大家。
宏是一个批量处理程序命令,正确地运用它可以提高工作效率。
微软的office软件运行用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力。
如完成一个一打开word文件同时要打开某个文件的功能,必须要自己编写一段称之为宏的脚本。
具体做法是在“工具”菜单“宏”-“宏”弹出的对话框输入宏名,然后按“创建”按钮会打开visual basic编辑器,你就可以编程了,这个就是宏这里批量处理图片的方法运用与将word中插入的嵌入格式图片修改为同样大小并添加边框(笔者将本方法常用于编制工程投标文件的业绩册或者人员册相关合同证书发票的批量处理)。
下面笔者将具体方法作一介绍:(后附代码,初学者只需复制即可)后面附实际运用效果:附:Sub 批量处理图片()Dim i As IntegerFor i = 1 To ActiveDocument.InlineShapes.CountWith ActiveDocument.InlineShapes(i).LockAspectRatio = msoFalse '不锁定纵横比.Height = 100 * 0.8.Width = 200 * 0.8.Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineWidth = wdLineWidth050pt.Borders(wdBorderTop).Color = wdColorRed End WithNext iEnd Sub。
批量删除WORD文档中的图片-宏+替换
批量删除WORD文档中的图片-宏+替换批量删除WORD文档中的图片有时要一次性删除某个Word文档中所有图片.一张一张地寻找图片并按下DEL键删除真是麻烦死了,这时你有一般两种方法可以选择:一、可以让“查找和替换”功能帮你的忙,在Word中同时按下“Ctrl +H”键打开“查找和替换”对话框,点击“替换”标签中的“更多”按钮,再选择“特殊格式→图形”项,这时会在“查找内容”中自动输入“^g”,最后直接按下“全部替换”按钮即可彻底删除所有图片。
(想要知道高级的查找替换功能,可以搜索word的通配符、正则表达式等内容)二、用宏程序删除WORD图片有时在word中使用第一种方法不能奏效,可以使用宏代码的方式进行删除,如果一次无法删除完全,可以多运行几遍。
代码如下:Sub Macro1()For Each ShapeRange In ActiveDocument.ShapesShapeRange.DeleteNext ShapeRangeEnd Sub附: Word通配符查找详解(Wildcards)通配符使用规则如下:任意单个字符键入?例如,s?t 可查找“sat”和“set”。
任意字符串键入*例如,s*d 可查找“sad”和“started”。
单词的开头例如,<(inter) 查找“interesting”和“intercept”,但不查找“splintered”。
单词的结尾键入>例如,(in)> 查找“in”和“within”,但不查找“interesting”。
指定字符之一键入[ ]例如,w[io]n 查找“win”和“won”。
指定范围内任意单个字符键入[-]例如,[r-t]ight 查找“right”和“sight”。
必须用升序来表示该范围。
中括号内指定字符范围以外的任意单个字符键入[!x-z]例如,t[!a-m]ck 查找“tock”和“tuck”,但不查找“tack”和“tick”。
【Word技巧】-如何用宏程序批量处理图片大小
Word技巧
如何用宏程序批量处理图片大小
1、统一图片大小+解除图片纵横比限制
Sub 图片统一大小() '设置图片大小
Dim n '图片个数
On Error Resume Next '忽略错误
For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片ActiveDocument.InlineShapes(n).LockAspectRatio = msoFalse '解除纵横比锁定
ActiveDocument.InlineShapes(n).Height = 5 * 28.35 '设置图片高度为5cm(1cm 等于28.35px)
ActiveDocument.InlineShapes(n).Width = 5 * 28.35 ' 设置图片宽度5cm
Next n
End Sub
注:使用前要考虑各种特殊情况,如剪报中的logo也是会受到影响。
2、统一图片大小(不解除纵横比,可以仅限定宽或高)
Sub 统一图片大小()
Dim iShape As InlineShape
For Each iShape In ActiveDocument.InlineShapes
iShape.LockAspectRatio = msoTrue
iShape.Height = CentimetersToPoints(5)
iShape.Width = CentimetersToPoints(5)
Next
End Sub
以上代码直接ALT+F11 添加到宏程序中运行即可,标红部分可以自行修改。
word编程宏批量修改图片大小
设定宽度大于8.5cm(两栏)图片,调整为8.5cm,高度随宽度继续比例调,保证图片不变形Sub setpicsize() '设置图片大小Dim n '图片个数Dim picwidthDim picheightOn Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片picheight = ActiveDocument.InlineShapes(n).Heightpicwidth = ActiveDocument.InlineShapes(n).WidthIf picwidth > 241 ThenActiveDocument.InlineShapes(n).Height = picheight * 241 / picwidth '设置高度按宽度比例调整ActiveDocument.InlineShapes(n).Width = 241 '设置宽度cm为任意28.345 * nEnd IfNext nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片picheight = ActiveDocument.Shapes(n).Heightpicwidth = ActiveDocument.Shapes(n).WidthIf picwidth > 241 ThenActiveDocument.Shapes(n).Height = picheight * 241 / picwidth '设置高度为按宽度比例调整ActiveDocument.Shapes(n).Width = 241 '设置宽度cm为任意28.345 * nEnd IfNext nEnd Sub设定图片固定大小Sub setpicsize() '设置图片大小Dim n ' 图片个数On Error Resume Next ' 忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes 类型图片ActiveDocument.InlineShapes(n).Height = 350 '设置图片高度为400pxActiveDocument.InlineShapes(n).Width = 240 '设置图片宽度100pxNext nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes 类型图片ActiveDocument.Shapes(n).Height = 350 '设置图片高度为400pxActiveDocument.Shapes(n).Width = 240 '设置图片宽度100pxNext nEnd Sub设定图片统一宽度,高度不做处理由于我只需要统一宽度,所以将统一高度的代码注释Sub 图片格式统一()'' 图片格式统一宏'''Myheigth = 12Mywidth = 14On Error Resume Next '忽略错误For Each iShape In ActiveDocument.InlineShapes'iShape.Height = 28.345 * Myheigth '设置图片高度为任意cmiShape.Width = 28.345 * 8.5 '设置图片宽度NextFor Each Shape In ActiveDocument.Shapes'Shape.Height = 28.345 * Myheigth '设置图片高度为任意cmShape.Width = 28.345 * 8.5 '设置图片宽度NextEnd Sub设定图片统一调整比例Sub setpicsize() '设置图片大小Dim n '图片个数Dim picwidthDim picheightOn Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片picheight = ActiveDocument.InlineShapes(n).Heightpicwidth = ActiveDocument.InlineShapes(n).WidthActiveDocument.InlineShapes(n).Height = picheight * 0.7 '设置高度为1.1倍ActiveDocument.InlineShapes(n).Width = picwidth * 0.7 '设置宽度为1.1倍Next nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片picheight = ActiveDocument.Shapes(n).Heightpicwidth = ActiveDocument.Shapes(n).WidthActiveDocument.Shapes(n).Height = picheight * 0.7 '设置高度为1.1倍ActiveDocument.Shapes(n).Width = picwidth * 0.7 '设置宽度为1.1倍Next n设定图片统一调整比例Sub 图片格式统一()'' 图片格式统一宏'''Myheigth = 12Mywidth = 14On Error Resume Next '忽略错误For Each iShape In ActiveDocument.InlineShapesiShape.Height = iShape.Height * 0.7 '设置图片高度为任意cmiShape.Width = iShape.Width * 0.7 '设置图片宽度NextFor Each Shape In ActiveDocument.ShapesShape.Height = iShape.Height * 0.7 '设置图片高度为任意cmShape.Width = iShape.Width * 0.7 '设置图片宽度NextEnd Sub设定宽度大于8.5cm图片,调整为8.5cm,高度不做调整Sub 图片格式统一()'' 图片格式统一宏'''Myheigth = 12Mywidth = 14On Error Resume Next '忽略错误For Each iShape In ActiveDocument.InlineShapesIf iShape.Width > 28.345 * 8.5 ThenActiveDocument.InlineShapes(n).LockAspectRatio=msotrue'打开纵横比锁定iShape.Width = 28.345 * 8.5 '设置图片宽度iShape.Height = iShape.Height * 28.345 * 8.5/iShape.WidthEnd IfFor Each Shape In ActiveDocument.ShapesShape.Width = 28.345 * 8.5 '设置图片宽度iShape.Height = iShape.Height * 28.345 * 8.5/iShape.WidthNextEnd SubSub setpicsize() '设置图片大小Dim n '图片个数On Error Resume Next '忽略错误For n = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片ActiveDocument.InlineShapes(n).LockAspectRatio = msoTrueIf iShape.Width > 28.345 * 8.5 ThenActiveDocument.InlineShapes(n).Width = 28.345 * 8.5 '设置图片宽度500px end ifNext nFor n = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片ActiveDocument.InlineShapes(n).LockAspectRatio = msoTrueIf iShape.Width > 28.345 * 8.5 ThenActiveDocument.Shapes(n).Width = 28.345 * 8.5 '设置图片宽度500pxend ifNext nEnd Sub。
WPSOffice专家级操作如何利用宏编辑器进行批量处理
WPSOffice专家级操作如何利用宏编辑器进行批量处理WPSOffice是一款功能强大的办公软件,提供了丰富的功能和工具,其中的宏编辑器是一项非常实用的功能,可以帮助用户实现批量处理的需求。
宏编辑器是一种能够录制和执行一系列操作的工具,它可以自动化重复性的任务,大大提高工作效率。
本文将介绍WPSOffice专家级操作如何利用宏编辑器进行批量处理的方法和步骤。
一、宏编辑器的介绍宏编辑器是WPSOffice软件中的一项高级功能,它可以帮助用户记录和执行一系列操作,包括插入、删除、格式化文本,设置字体、边框、颜色等。
通过宏编辑器,用户可以实现批量处理的需求,节省大量时间和劳动力。
二、录制宏1. 打开WPSOffice软件,选择要操作的文档或工作表。
2. 在菜单栏中选择“宏”选项,并点击“录制宏”按钮。
3. 给宏起一个名称,并点击“录制”按钮开始录制。
4. 在录制过程中,进行一系列要执行的操作,比如插入文本、修改格式、调整布局等。
5. 完成操作后,点击“停止录制”按钮,录制的宏将自动保存。
三、执行宏1. 在需要执行宏的文档或工作表中,选择菜单栏中的“宏”选项。
2. 在弹出的宏列表中,选择要执行的宏,并点击“运行”按钮。
3. 宏将按照录制时的操作顺序,自动执行一系列操作。
四、编辑宏1. 在菜单栏中选择“宏”选项,并点击“编辑宏”按钮。
2. 在弹出的编辑界面中,可以对宏的代码进行编辑和修改。
3. 完成编辑后,点击“保存”按钮,修改的宏将被保存。
五、删除宏1. 在菜单栏中选择“宏”选项,并点击“编辑宏”按钮。
2. 在弹出的编辑界面中,选择要删除的宏,并点击“删除”按钮。
3. 删除后,该宏将不再可用。
六、导入和导出宏1. 在菜单栏中选择“宏”选项,并点击“宏管理器”按钮。
2. 在宏管理器界面中,点击“导出”按钮,选择要导出的宏,并保存为文件。
3. 要导入宏,点击“导入”按钮,选择已保存的宏文件,即可重新导入。
image j批量处理图片的三种方法
image j批量处理图片的三种方法(从傻瓜式到看不懂)方法一:使用批处理功能1、打开宏命令录制窗口:Plugins-Macros-Record2、打开一张图片进行你要进行的操作3、复制Recorder窗口里录制的宏命令4、打开批处理Process-Batch-Macro...点击这里正式批处理。
批处理默认状态下不会在桌面上加载图片,这样运行速度会更快。
➢在Image j工具栏下面可以看到批处理的进度条,这样可以判断批处理是否已经完成。
➢如果想要提前终止批处理,可以按esc键退出。
个人要按两三次才能够退出,不知道批处理的局限性:1、在处理过程中有部分插件的操作宏录制功能无法录制。
如IHC Toolbox插件里面Select Model里面进行H-DAB模式选择这一操作就无法识别,使用批处理会暂停在这一阶段。
2、在图片处理过程中,有时候会从一张图片中分离出多张图片,这时候难免要进行窗口的选择。
而宏命令录制功能录制下的宏命令会包含你选中的窗口文件名。
直接复制粘贴,批处理会反复查找你录制的那张图片而报错。
批处理的优化:1、解决窗口选择问题。
在批处理窗口大输入框,第一行输入如下宏命令,该命令意思是获取你进行操作的图片文件名,并用title这个代号表示。
注意不要忘记后面的分号,英文状态下输入。
title=getTitle();在需要选取窗口的阶段输入,通过该命令除了可以改变接下来处理的图片窗口,也可以改变保存哪一个窗口的图片。
一般插件处理图片都是在原有文件名的基础上加入后缀,比如使用Colour Deconvolution里的H-DAB颜色分离功能就会把图片分为带-(Colour_1)、-(Colour_2)、-(Colour_3)三种类型后缀的图片窗口。
假如我们需要选择含有-(Colour_2),就可以输入以下代码。
selectWindow(title+"-(Colour_2)");2、添加快捷键让操作更快Plugins-Shortcuts-Add Shortcut...Shortcut里面选择你要设置的快捷键。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要:
在制作标书或者编制业绩时,经常遇到需要大批
量的处理图片的情况,这是极其庞大的工作量,
手动处理耗时而且不美观,现将自己总结出来的
小技巧分享给大家
运用宏批量处理图片
摘要:在制作标书或者编制业绩时,经常遇到需要大批量的处理图片的情况,这是极其庞大的工作量,手动处理耗时而且不美观,现将自己总结出来的小技巧分享给大家。
宏是一个批量处理程序命令,正确地运用它可以提高工作效率。
微软的office软件运行用户自己编写,叫VBA的脚本来增加其灵活性,进一步扩充它的能力。
如完成一个一打开word文件同时要打开某个文件的功能,必须要自己编写一段称之为宏的脚本。
具体做法是在“工具”菜单“宏”-“宏”弹出的对话框输入宏名,然后按“创建”按钮会打开visual basic编辑器,你就可以编程了,这个就是宏
这里批量处理图片的方法运用与将word中插入的嵌入格式图片修改为同样大小并添加边框(笔者将本方法常用于编制工程投标文件的业绩册或者人员册相关合同证书发票的批量处理)。
下面笔者将具体方法作一介绍:(后附代码,初学者只需复制即可)
后面附实际运用效果:
附:
Sub 批量处理图片()
Dim i As Integer
For i = 1 To ActiveDocument.InlineShapes.Count
With ActiveDocument.InlineShapes(i)
.LockAspectRatio = msoFalse '不锁定纵横比
.Height = 100 * 0.8
.Width = 200 * 0.8
.Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineWidth = wdLineWidth050pt
.Borders(wdBorderTop).Color = wdColorRed End With
Next i
End Sub。