前言:
對於把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
(來自網絡)