2012-08-23 62 views
1

是否有参考可在任何地方,详细描述了每个“adjustment property”确实为各种自选图形对象提供Excel 2010中微软Excel 2010中自选图形“调整”属性(msoShapeTrapezoid)

我的具体问题是,我编程插入msoShapeTrapezoid自选到工作表具有:

.AddShape(msoShapeTrapezoid, Left, Top, Width, Height) 

...限定梯形的矩形范围。然后我试图使用方法:

shpTrapezoid.Adjustments(1) = ValueX 

设置梯形(上调整自选图形手动我猜单手柄的当量)的顶部的大小,但我不知道是什么这个调整属性表示(尽管我已经发现0的值使梯形成为矩形)。

因此,我知道梯形底部的大小,梯形顶部的大小以及我想绘制的梯形的高度(并且它是对称的),ValueX必须是什么在屏幕上正确定义它?

+0

你见过这个吗?如果不是,它有帮助吗?

+0

谢谢,我没有看到,但它并没有真正的帮助。从这些信息看来,msoShapeTrapezoid的线性调整应该从'0'运行到'0.5'(即矩形 - >极限三角形),但我试图在录制宏时拖动手柄,并且数值超出为0.5。 – Will

回答

0

首先,对不起我的英文不好...

我一直在几个小时期间,这个问题所困扰,我已经发现,对于msoShapeTrapezoid的调整是必须乘以系数通过宽度小于高度的形式的宽度或如果高度小于宽度的形式的高度。

这也解释了为什么这种调整可能超过0.5(如果窗体的高度小于其宽度,调整可以大于0.5:最大值是宽度除以高度,但在另一种情况下,最大值是0.5)。

所以如果你想绘制一个梯形,调整必须像这样计算:将梯形的顶部减去基数,除以2得到的结果除以梯形的高度,如果高度小于其宽度或在其他情况下的宽度。

这也适用于msoShapeParallelogramm;调整必须乘以Min(宽度;高度)。

这些自选图形中有很多小错误...(例如,msoShapeRegularPentagone不是普通的五角形...但基数是通过将表格的宽度乘以黄金比例减1来计算的,位于表格左侧和右侧的点的“高程”也等于GoldenRation减1乘以表格宽度:结果接近正五边形,但不是)

0

我知道这是一个古老的线程,但它与我目前的项目有关,我认为我会抛出我找到的解决方案 - 对于我的项目,我想定义Width,Height和TopWidth。就这样,传递给调整属性的值是:

shpTrapezoid.Adjustments(1) = (Width - TopWidth)/(2 * Height) 

这应该工作,不管这是因为更大的(高度或宽度)想必你TopWidth始终为正。