You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Excel VBA旋转形状会改变尺寸,属性窗口旋转却不会?

Excel 2019中VBA旋转形状尺寸异常问题

在Excel 2019中,复制两个完全相同的形状,分别通过「形状格式」侧边栏设置旋转45度,以及使用VBA的Shape.Rotate方法旋转45度后,会发现VBA旋转的形状尺寸出现轻微变化。即使将两者都旋转回0度,尺寸差异依然存在。

重现步骤

  • 将窗口缩放设置为96%
  • 创建矩形并复制一份,可将副本置于原形状上方以便观察
  • 右键点击第一个矩形,打开「形状格式」侧边栏,在第三栏输入45作为旋转值
  • 使用VBA代码旋转另一个形状45度
  • 两个形状尺寸出现差异,旋转回0度后差异仍存在

注:该问题在45度旋转时出现,也可能因环境不同而有所变化

解决方案

此问题由窗口缩放比例非100%导致,可在VBA旋转前添加以下代码解决:

If Not ActiveWindow.Zoom = 100 Then
    If MsgBox( _
        "Zoom other than 100% sometime cause small inacuracies during rotation." & vbCrLf _
        & vbCrLf _
        & "Restaure zoom to 100% ?", vbYesNo) = vbYes Then
        ActiveWindow.Zoom = 100 'Set the zoom to 100%
    End If
End If

若有无需强制缩放至100%的更佳方案,欢迎补充。

内容的提问来源于stack exchange,提问作者FMaz008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:20:19