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 對查詢結果沒有影響,是一個替換時分組的概念 例子: 
40 用\2 \1替換(John) (Smith),得到結果Smith John  即\1代表John,\2代表Smith 
(來自網絡)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM