1. 程式人生 > >利用VBA宏批量解決Word中圖片大小、居中設置

利用VBA宏批量解決Word中圖片大小、居中設置

next align 如果 ali nes vba als pre format

需求:經常閱讀網上的研報(沒錢買排版漂亮的高質量研報),有些需要保存的復制下來到word裏,圖片很大都超出word的邊界了,也沒有居中,手工一張張調整不現實,上百頁的研報,幾十張圖片。

解決方案:利用VBA宏批量解決。第一種方法經過測試,只是前面部分有些,後面部分無效,不知道何解。

以下是代碼:

Sub setpicsize() 設置圖片尺寸

第一種方法,經測試,文檔前面部分圖片有效,後面部分無效
    Dim n ‘圖片個數
    On Error Resume Next ‘忽略錯誤
    For n = 1 To ActiveDocument.InlineShapes.Count ‘InlineShapes 類型 圖片
ActiveDocument.InlineShapes(n).Height = 198.45 ‘設置圖片高度為 7cm ActiveDocument.InlineShapes(n).Width = 455 ‘單位是像素,設置圖片寬度 16cm Next n 第二種方法,經測試,對整篇文檔圖片有效 Dim Shap As InlineShape For Each Shap In ActiveDocument.InlineShapes If Shap.Type = wdInlineShapePicture Then
Shap.LockAspectRatio = msoFalse ‘不鎖定縱橫比 MsgBox "圖片寬度" & Shap.Width‘測試,提示圖片大小以便判斷單位 If Shap.Width > 485 Then 此處單位是像素;如果圖片超出邊界才進行處理,否則圖片放大看起來不好看。 Word中的尺寸單位默認是cm(厘米),而1cm等於28.35px(像素),由於代碼中換算設置的單位是px(像素)。所以就用尺寸高度或寬度值乘像素值。即為:7*28.35=198.45;寬度換算方法與此相同。
Shap.Width = CentimetersToPoints(17) 此處單位是厘米。如果Word設置頁邊距為適中,則中間內容寬17.08CM Shap.Height = CentimetersToPoints(7) ‘高度不設置,默認鎖定縱橫比 End If 設置圖片居中 Shap.Range.Select Selection.ClearFormatting 如果Word中圖片設置了行距不是1,比如固定值30磅,則無論圖片設置什麽格式,嵌入式會造成只顯示一部分圖片。 Selection.Range.Paragraphs.Alignment = wdAlignParagraphCenter End If Next End Sub






利用VBA宏批量解決Word中圖片大小、居中設置