永中集成Office2009个人版免费下载

查看完整版本: 录制的插入文本框的宏不能运行

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也是如此。
页: [1]
查看完整版本: 录制的插入文本框的宏不能运行