• word中批量修改图片大小的两个方法


    前言:

    对于把ppt的内容拷贝到word中:

    对ppt的一页进行复制,然后粘贴到word中

    如果要的是ppt运行过程中的内容,在qq运行的情况下,按Ctrl+Alt+A截屏,按勾,然后可以直接粘贴到word中(生成的图片已经在剪贴板中了)

     ////////////////////////////////////////////////////////////////////////////////////////////////////

    1.图片只需要符合文档大小即可

    方法:插入图片,word自动处理图片大小。

    按插入

    按图片

    看一下下方的文件名

    按Ctrl+A(全选),图片的顺序按照电脑文件的顺序排列的

    每一次按Ctrl+点击图片,被点击的图片放在首位

     

    效果:

    ////////////////////////////////////////////////////////////////////////////////////////////////////

    2.图片需要修改为具体的大小

    把图片复制,直接在word中粘贴,图片以原始大小显示

    ////////////////////////////////////////////////////////////////////////////////////////////////////

    或插入图片:

    原来的word为: 

     ////////////////////////////////////////////////////////////////////////////////////////////////////

    按视图

    按宏,查看宏,输入setpicsize,按创建

    复制并粘贴以下程序 并按调试+编译,看看程序有没有错误

     1 Sub setpicsize()
     2     Dim i
     3     Dim Height, Weight
     4     Height = 300
     5     Weight = 200
     6     
     7     On Error Resume Next '忽略错误
     8     For i = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
     9             ActiveDocument.InlineShapes(i).Height = Height '设置图片高度为 Height_px
    10             ActiveDocument.InlineShapes(i).Width = Weight '设置图片宽度 Weight_px
    11     Next i
    12 
    13     For i = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片
    14             ActiveDocument.Shapes(i).Height = Height '设置图片高度为 Height_px
    15             ActiveDocument.Shapes(i).Width = Weight '设置图片宽度 Weight_px
    16     Next i
    17 End Sub
    18 (来自网络程序修改)

    如果没有错误,保存(Ctrl+S)并退出(Alt+F4)

    然后按宏,查看宏,选择名字为setpicsize的宏,并按运行,稍等片刻即可完成

    或者直接在代码页面按运行+运行子过程(F5)

    效果:

    如果下一次要修改图片的大小时,

    按宏,查看宏,选择名字为setpicsize的宏,并按编辑

    修改图片大小,如高度为100,宽度为50,修改Height和Weight的值即可

    然后编译,保存,退出,运行这个宏即可

    ////////////////////////////////////////////////////////////////////////////////////////////////////

    程序1: 

    查看每张图片的大小,方便后续的修改

     1 Sub GetPhotoSize()
     2     Dim str As String
     3     Dim i
     4     
     5     For i = 1 To ActiveDocument.InlineShapes.Count
     6         'cstr:数字转字符串
     7         str = str + CStr(i) + ": "
     8         str = str + CStr(ActiveDocument.InlineShapes(i).Height) + " "
     9         str = str + CStr(ActiveDocument.InlineShapes(i).Width) + " "
    10         'chr(13)代表换行
    11         str = str + Chr(13)
    12     Next i
    13     MsgBox str
    14 End Sub

    效果:

    ////////////////////////////////////////////////////////////////////////////////////////////////////

    程序2:

    修改第x张图片到第y张图片的大小(可以分成很多段)

     1 Sub ModifyPhoto1()
     2     Dim i, x, y
     3     Dim Height, Weight
     4     Height = 80
     5     Weight = 100
     6     '修改第x张图片到第y张图片的大小
     7     x = 4
     8     y = 13
     9     On Error Resume Next '忽略错误
    10     For i = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
    11         If i >= x And i <= y Then
    12             ActiveDocument.InlineShapes(i).Height = Height '设置图片高度为 Height_px
    13             ActiveDocument.InlineShapes(i).Width = Weight '设置图片宽度 Weight_px
    14         End If
    15     Next i
    16 
    17     For i = 1 To ActiveDocument.Shapes.Count 'Shapes类型图片
    18         If i > k Then
    19             ActiveDocument.Shapes(i).Height = Height '设置图片高度为 Height_px
    20             ActiveDocument.Shapes(i).Width = Weight '设置图片宽度 Weight_px
    21         End If
    22     Next i
    23 End Sub

    效果:

     ////////////////////////////////////////////////////////////////////////////////////////////////////

    程序3:

    修改某一些图片的大小为某个值,修改另一些图片的大小为另外一个值(可以分成很多段,用boolean)

     1 Sub ModifyPhoto2()
     2     '修改某一些图片的大小为某个值,修改另一些图片的大小为另外一个值
     3     Dim i, ans
     4     '100为图片最大数量,可以修改
     5     Dim vis(1 To 100) As Boolean
     6     Dim Height1, Weight1
     7     Dim Height2, Weight2
     8     Height1 = 80
     9     Weight1 = 100
    10     Height2 = 150
    11     Weight2 = 200
    12 
    13     On Error Resume Next '忽略错误
    14     For i = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
    15         vis(i) = False
    16     Next i
    17     'x(k)=true means modify the k_th photo
    18     For i = 4 To 13
    19         vis(i) = False
    20     Next i
    21     For i = 15 To 23
    22         vis(i) = False
    23     Next i
    24     
    25     For i = 1 To ActiveDocument.InlineShapes.Count 'InlineShapes类型图片
    26         If vis(i) = True Then
    27             ActiveDocument.InlineShapes(i).Height = Height1 '设置图片高度为 Height_px
    28             ActiveDocument.InlineShapes(i).Width = Weight1 '设置图片宽度 Weight_px
    29         Else
    30             ActiveDocument.InlineShapes(i).Height = Height2 '设置图片高度为 Height_px
    31             ActiveDocument.InlineShapes(i).Width = Weight2 '设置图片宽度 Weight_px
    32         End If
    33     Next i
    34 End Sub

    效果:

     ////////////////////////////////////////////////////////////////////////////////////////////////////

    程序4:当图片大小大于(或小于)某个值时,修改为另外一个值。

    效果:

      ////////////////////////////////////////////////////////////////////////////////////////////////////

     程序5:删去所有的图片,只剩下文字

     1 Sub DeletePhoto()
     2     On Error Resume Next '忽略错误
     3     '两个for循环不能用同一个变量
     4     '因为photo1指的是所有在ActiveDocument.InlineShapes的元素
     5     '因为photo2指的是所有在ActiveDocument.Shapes的元素,二者被定义后不可改变
     6     Dim photo1, photo2 As Range
     7     For Each photo1 In ActiveDocument.InlineShapes
     8         photo1.Delete
     9     Next
    10     For Each photo2 In ActiveDocument.Shapes
    11         photo2.Delete
    12     Next
    13 End Sub

    效果(有可能剩下一些换行符):

      ////////////////////////////////////////////////////////////////////////////////////////////////////

     程序6:在程序变通5只剩下文字的基础上,删去换行符

     1 Sub changeCharacter()
     2     With Selection.Find
     3         '原来的内容
     4         .Text = "^p"
     5         '要修改成的内容,如果为""相当于删除
     6         .Replacement.Text = ""
     7         'wrap() 方法把每个被选元素放置在指定的内容或元素中。规定包裹(wrap)被选元素的内容。
     8         .Wrap = wdFindContinue
     9     End With
    10     '进行修改操作
    11     Selection.Find.Execute Replace:=wdReplaceAll
    12 End Sub

    效果:

     

    (也可以做 1个换行变成2个换行的操作,使文档看起来更舒服:.Text="^p"  .Replacement.Text="^p")

    ////////////////////////////////////////////////////////////////////////////////////////////////////

     程序变通7:删去所有的文字,只剩下图片

     1 Sub DeleteCharacter()
     2     Dim word As Range
     3     For Each word In ActiveDocument.Words
     4         'NoProofing:如此如果拼写和语法检查程序忽略指定的文本。如果仅有某些指定的文本将NoProofing属性设置为True ,则返回wdUndefined 。读/写长。
     5         '图片值为-1,文字值为0
     6         If word.NoProofing = 0 Then
     7             word.Delete
     8         End If
     9     Next word
    10 End Sub

     以下是错误程序:

     1     'With Selection.Find
     2     '    .Text = True
     3     '    .Replacement.Text = ""
     4     '    .Wrap = wdFindContinue
     5     'End With
     6     'Selection.Find.Execute Replace:=wdReplaceAll
     7 
     8 
     9     'Dim ch As Range
    10     'For Each ch In ActiveDocument.Words
    11     '    ch.Delete
    12     'Next

    效果:

      ////////////////////////////////////////////////////////////////////////////////////////////////////

      程序8:第x张图片到第y张图片改变顺序,变成第y张图片(原来)到第x张图片(原来)

     ////////////////////////////////////////////////////////////////////////////////////////////////////

     程序9:把所有的图片保存在一个文件夹下,或转移图片到另外一个word文档

    ////////////////////////////////////////////////////////////////////////////////////////////////////

     程序10:把某些字加粗和改变颜色

     1 Sub ModifyCharacter()
     2     Dim str As String
     3     str = "图片"
     4     With Selection.Find
     5         .Text = str
     6         .Replacement.Font.Bold = True
     7         .Replacement.Font.Color = wdColorRed
     8     End With
     9     Selection.Find.Execute Replace:=wdReplaceAll
    10 End Sub

    之前

    现在:

     1 附: Word通配符查找详解(Wildcards)  
     2 
     3 通配符使用规则如下:  
     4 任意单个字符 键入 ?  
     5 例如,s?t 可查找“sat”和“set”。  
     6 
     7 任意字符串 键入 *  
     8 例如,s*d 可查找“sad”和“started”。  
     9 
    10 单词的开头 键入< 
    11 例如,<(inter) 查找“interesting”和“intercept”,但不查找“splintered”。  
    12 
    13 单词的结尾 键入> 
    14 例如,(in)>查找“in”和“within”,但不查找“interesting”。  
    15 
    16 指定字符之一 键入 [ ]  
    17 例如,w[io]n 查找“win”和“won”。  
    18 
    19 指定范围内任意单个字符 键入 [-]  
    20 例如,[r-t]ight 查找“right”和“sight”。必须用升序来表示该范围。  
    21 
    22 中括号内指定字符范围以外的任意单个字符 键入 [!x-z]  
    23 例如,t[!a-m]ck 查找“tock”和“tuck”,但不查找“tack”和“tick”。  
    24 
    25 n 个重复的前一字符或表达式 键入 {n}  
    26 例如,fe{2}d 查找“feed”,但不查找“fed”。  
    27 
    28 至少 n 个前一字符或表达式 键入 {n,}  
    29 例如,fe{1,}d 查找“fed”和“feed”。  
    30 
    31 n 到 m 个前一字符或表达式 键入 {n,m}  
    32 例如,10{1,3} 查找“10”、“100”和“1000”。
    33   
    34 一个以上的前一字符或表达式 键入 @  
    35 例如,lo@t 查找“lot”和“loot”。  
    36 
    37 特殊意义的字符 键入   
    38 例如,f[?]t 查找“f?t”   ( ) 
    39 对查询结果没有影响,是一个替换时分组的概念 例子: 
    402 1替换(John) (Smith),得到结果Smith John  即1代表John,2代表Smith 
    (来自网络)
  • 相关阅读:
    一种通用的简易缓存设计方案
    SpringCloud接入Passport中台服务的FeignClient简易集成配置
    一种基于P2P技术的高效数据传输方式
    应用多环境部署和Redis高可用
    瑞金小吃
    前(单页面)后端完全分离的OAuth2授权和分享
    Session(数据)共享的前后端分离Shiro实战
    10万Http(单机和集群Server)Subscribe的可行性实验和压测
    2018年你应该了解的前端新技术
    js常见问题总结归纳
  • 原文地址:https://www.cnblogs.com/cmyg/p/6708441.html
Copyright © 2020-2023  润新知