如何使用vba将旋转的形状移动到excel 2010中的特定位置

我写了一些自动创建图表的VBA代码.此图表中的一个轴不使用普通标签,而是使用图形.我将图形存储为图像,然后使用.Copy和.Paste方法将此图像的副本存入图表.

这是令人困惑的地方.我需要旋转图像以使其与轴对齐(使用.rotation属性).但是当我设置.top和.left属性时,形状不会达到我期望的结果.事实上,将属性设置为0和0并不能达到我的预期.我已经尝试更改我在图像对象上设置属性的方式的顺序,但它只出现在不同的(错误的)位置.

我确定我错过了VBA / Excel如何放置对象相对于我设置顶部和左侧属性的一些重要方面.基本上我的目标是使图表左侧的图像具有与绘图区域高度相同的宽度(因为图像旋转我理论上这将使其大​​小相同).

此代码不起作用:

Sheets(ImageSheet).Shapes("agreement").Copy
c.Chart.Paste
c.Chart.Shapes(1).Rotation=270
c.Chart.Shapes(1).width = c.Chart.PlotArea.height
c.Chart.shapes(1).left = 5
c.Chart.Shapes(1).top = c.Chart.PlotArea.top

我也试过这段代码

c.chart.Shapes(1).top = c.chart.PlotArea.top + c.Chart.PlotArea.height

因为我想也许它正在计算“顶部”作为图像对象的左上角,当它没有旋转时(旋转270度使得这个点在它应该与绘图区域的底部对齐的地方).但这并没有达到我的预期.

图像是一个瘦的矩形,充当轴的标签.该图表最终将如下布局:http://imgur.com/NrSXR和轴标签图像将类似于此http://imgur.com/08EWU

我在这里错过了什么?

最佳答案
您是否可以将图表对齐到形状可以在单元格上对齐/放置的位置?

如果是,那么这里有一个建议: –

>您可以将形状定位到单元格中.然后根据需要调整大小.并旋转.
>然后更改其提前属性显示在图表上.
>下一组图和形状

PS:我录了一个宏.但是,如果您能够向我们展示您的问题的确切图片(=您的Sheeet /图表/图像应该如何),那将是最好的.

转载注明原文:如何使用vba将旋转的形状移动到excel 2010中的特定位置 - 代码日志