bibofun 2007-10-9 20:19
录制的插入文本框的宏不能运行
我录制一个宏,目的是插入一个文本框,使其线条和填充都没有颜色,文本框的内部边距都为0,并且文本框中有字母L,居中,倾斜,字体为Times New Roman。
录制后代码如下,执行时到ActiveShapeRange.setTextBoxMarginTop(0);这一行就出错。请问我应该如何改进?
同时,由于我要设置字体的样式,下面的代码并没有体现这一点,这些代码应该如何编写?
谢谢!!
碧波
void InsertLabel()
{
/**
*录制宏 日期: 2000-10-9 作者: 碧波
*/
Application.gotoProduct(GlobalConstants.WORDPROCESSOR);
ActiveWorkbook.getActiveShapes().addTextBox(TextDirectionConstants.HORIZONTAL,169.00258,116.80178,253.00386,148.00226);
{
FillAttribute fill = ActiveShapeRange.getFillAttribute();
fill.setNoColor();
ActiveShapeRange.setFillAttribute(fill);
}
ActiveShapeRange.getLineFormat().getPatternFormat().setNoColor();
ActiveShapeRange.setTextBoxMarginTop(0);
ActiveShapeRange.setTextBoxMarginBottom(0);
ActiveShapeRange.setTextBoxMarginLeft(0);
ActiveShapeRange.setTextBoxMarginRight(0);
ActiveShapeRange.getActiveText().insertText("L");
ActiveWorkbook.save();
}
bibofun 2007-10-10 17:58
通过摸索,解决了一点点,代码如下。不过使文本框中的字居中还没有解决。
奇怪的是,在没有打sp2之前,代码不能被执行,打了之后,就可以了。
永中的服务跟不上,真没意思。
void InsertLabel()
{
/**
*录制宏 日期: 2000-10-9 作者: 碧波
*/
Shapes shapes = Application.getWorkbooks().getActiveWorkbook().getActiveShapes() ;
Shape shape = shapes.addTextBox(TextDirectionConstants.HORIZONTAL,169,116,253,148);
shape.getShapeText().insertText("L");;
TextFrame textframe=shape.getTextFrame();
{
textframe.setMarginBottom(0);
textframe.setMarginLeft(0);
textframe.setMarginRight(0);
textframe.setMarginTop(0);
}
FillAttribute fill = ActiveShapeRange.getFillAttribute();
fill.setNoColor();
ActiveShapeRange.setFillAttribute(fill);
ActiveShapeRange.getLineFormat().getPatternFormat().setNoColor();
ShapeText text=ActiveShapeRange.getActiveText();
text.selectAll();
FontAttribute fontAttr = new FontAttribute();
fontAttr.setComplexFontName("Times New Roman");
fontAttr.setItalic(true);
text.setFontAttribute(fontAttr,true);
}
bibofun 2007-10-11 23:52
唉,没有人回答,唉,版主做什么去了呢?还要二次开发呢,莫非都去开发了?
pengyou 2007-10-15 13:26
通过摸索,解决了一点点,代码如下。不过使文本框中的字居中还没有解决。
[b][color=blue]上面的问题的原因 : 上面的代码是在记录宏状态,永中Office自动记录的宏代码,"文本框中的字居中的操作"在记录宏的时候是不被系统记录的,所以没有"文本框中的字居中"的记录宏代码.所以运行以后就没有"文本框中的字居中"的效果了.[/color][/b]
hykjfc 2008-10-17 22:45
自动录制不能太依靠了。我在office2003里面试了,连录制插入文本框都不支持,我晕!不试不知道,一试吓一跳。
macrosuner 2008-10-22 15:34
问题
自动录制,一般只提供了录制一些基本的功能操作,主要是演示,微软office也是如此。如果需要进一步的操作录制的话,可以在宏编辑器里通过对象浏览器查阅api自己进行office编程,编制自己需要的功能操作。vba也是如此。