ARTICLE · 1165121
Excel图片放大工具
Excel图片放大工具


一、Excel图片放大工具
适用场景:在利用Excel记录优化内容图片、有限元云图、试验截图、零部件照片经常需要等比例放大查看细节,再次单击恢复原始尺寸,但是Excel中并没有这个功能全(WPS自带这个功能),因此利用VBA语言解决该问题。

(一)工具特点
- ●全工作表支持,工作簿内任意工作表图片均可生效
- ●打开文件自动绑定全部图片,自动重命名避免shape名称冲突
- ●新增/复制粘贴图片后,一键全局刷新绑定
- ●等比例缩放,云图不会拉伸变形
- ●放大倍数可自定义
- ●使用图片可选文字存储原始尺寸,无全局变量,稳定性好
(二)部署说明
文件必须另存为 .xlsm(启用宏的工作簿),普通xlsx无法保存VBA代码。
快捷键 Alt+F11 打开VBA编辑器。
1、ThisWorkbook 代码
左侧工程窗口双击 ThisWorkbook,粘贴以下代码

Private Sub Workbook_Open()Dim ws As WorksheetDim cName$Dim a As ShapeOn Error Resume Next'遍历全部工作表For Each ws In ThisWorkbook.WorksheetsFor Each a In ws.ShapesIf a.Type = 1 Or a.Type = 13 Thena.OnAction = "test"cName = a.TopLeftCell.Address(0, 0)DoErr.Cleara.Name = cNameIf Err = 0 Then Exit DocName = cName & "_0"LoopEnd IfNext aNext wsEnd Sub
2、标准模块代码
顶部菜单:插入 → 模块,一次性粘贴下面两段代码

Sub test()On Error Resume NextDim a As ShapeFor Each a In ActiveSheet.ShapesIf a.Type = 1 Or a.Type = 13 ThenIf a.Name = Application.Caller And a.AlternativeText = Empty Then'保存原图宽高a.AlternativeText = a.Height & Chr(28) & a.Width'锁定纵横比,等比例放大a.LockAspectRatio = msoTruea.ScaleHeight 5, msoFalsea.ZOrder msoBringToFrontElse'恢复原始尺寸Dim arrarr = Split(a.AlternativeText, Chr(28))a.LockAspectRatio = msoTruea.Height = arr(0)a.Width = arr(1)a.AlternativeText = EmptyEnd IfErr.ClearEnd IfNext aEnd SubSub RefreshAllPicBind()Dim ws As WorksheetDim cName$Dim a As ShapeOn Error Resume NextFor Each ws In ThisWorkbook.WorksheetsFor Each a In ws.ShapesIf a.Type = 1 Or a.Type = 13 Thena.OnAction = "test"cName = a.TopLeftCell.Address(0, 0)DoErr.Cleara.Name = cNameIf Err = 0 Then Exit DocName = cName & "_0"LoopEnd IfNext aNext wsMsgBox "全局图片绑定刷新完成!所有工作表图片已生效"End Sub
(三)使用步骤
1、粘贴代码完成后,保存为.xlsm,关闭文件重新打开,启用内容。
2、原有图片:打开文件自动完成绑定,单击放大,再次单击复原。
3、新增图片 / 复制粘贴图片后:
- ●快捷键 Alt+F8
- ●选中 RefreshAllPicBind → 执行
4、可选:开发工具插入【表单控件按钮】,指定宏RefreshAllPicBind,实现一键刷新。
(四)修改放大倍数
找到test子过程中这一行,修改数字即可:
a.ScaleHeight 5, msoFalse示例:3倍写3,4倍写4,5倍写5
(五)使用注意事项
- ●图片数量很大时,全局刷新会短暂卡顿,属于正常现象。
- ●报告定稿导出PDF前,务必将所有图片恢复原始尺寸。
- ●复制粘贴图片后,必须执行RefreshAllPicBind刷新绑定。
- ●企业办公环境若禁用宏,工具无法运行。