你自己先在Word里录制宏,然后做出想要效果,完成后把宏代码复制过去就行了,不过要记得在VB里引用Office对象哦~,具体代码就不写了,大概就这样子应该可以搞定了。

解决方案 »

  1.   

    Dim xDocu As New Word.ApplicationPrivate Sub Form_Click()
        xDocu.Selection.ShapeRange.TextEffect.PresetTextEffect = Int(Rnd(1) * 30)
        xDocu.Selection.ShapeRange.TextEffect.FontName = "宋体"
        xDocu.Selection.Copy
        Form1.Picture = Clipboard.GetData
    End SubPrivate Sub Form_Load()
        xDocu.Documents.Add.Select
        xDocu.ActiveDocument.Shapes.AddTextEffect(0, "What", _
        "宋体", 32#, -1, 0, 10, 10).Select
    End Sub
    执行时速度稍慢
    等待
    [email protected]
      

  2.   

    AddTextEffect 方法应用于 CanvasShapes 对象的 AddTextEffect 方法。在画布上添加一个“艺术字”图形。返回一个 Shape 对象,该对象代表“艺术字”,并将其添加至 CanvasShapes 集合。expression.AddTextEffect(PresetTextEffect, Text, FontName, FontSize, FontBold, FontItalic, Left, Top)expression   必需。该表达式返回一个 CanvasShapes 对象。PresetTextEffect  MsoPresetTextEffect,必需。预设的文本效果。MsoPresetTextEffect 常量的值对应于“‘艺术字’库”对话框中所列的格式(按从上到下、从左到右的顺序排列)。MsoPresetTextEffect 可以是下列 MsoPresetTextEffect 常量之一: 
    msoTextEffect1 
    msoTextEffect10 
    msoTextEffect11 
    msoTextEffect12 
    msoTextEffect13 
    msoTextEffect14 
    msoTextEffect15 
    msoTextEffect16 
    msoTextEffect17 
    msoTextEffect18 
    msoTextEffect19 
    msoTextEffect2 
    msoTextEffect20 
    msoTextEffect21 
    msoTextEffect22 
    msoTextEffect23 
    msoTextEffect24 
    msoTextEffect25 
    msoTextEffect26 
    msoTextEffect27 
    msoTextEffect28 
    msoTextEffect29 
    msoTextEffect3 
    msoTextEffect30 
    msoTextEffect4 
    msoTextEffect5 
    msoTextEffect6 
    msoTextEffect7 
    msoTextEffect8 
    msoTextEffect9 
    msoTextEffectMixed Text  String 类型,必需。“艺术字”中的文字。FontName  String 类型,必需。“艺术字”中所用字体的名称。FontSize  Single 类型,必需。“艺术字”中所用字体的大小(以磅为单位)。FontBold  MsoTriState,必需。如果为 MsoTrue,则对“艺术字”字体应用加粗格式。MsoTriState 可以是下列 MsoTriState 常量之一: 
    msoCTrue  不用于该参数。 
    msoFalse  将“艺术字”所用字体设为常规字体。 
    msoTriStateMixed  不用于该参数。 
    msoTriStateToggle  不用于该参数。 
    msoTrue 将“艺术字”所用字体设为加粗格式。 FontItalic  MsoTriState,必需。如果为 MsoTrue,则对“艺术字”字体应用倾斜格式。MsoTriState 可以是下列 MsoTriState 常量之一: 
    msoCTrue  不用于该参数。 
    msoFalse  将“艺术字”所用字体设为常规字体。 
    msoTriStateMixed  不用于该参数。 
    msoTriStateToggle  不用于该参数。 
    msoTrue 将“艺术字”所用字体设为倾斜格式。 Left   Single 类型,必需。“艺术字”图形左边缘相对于画布左边缘的位置,以磅为单位。Top   Single 类型,必需。“艺术字”图形上边缘相对于画布上边缘的位置,以磅为单位。应用于 Shapes 对象的 AddTextEffect 方法。在文档上添加一个“艺术字”图形。返回一个 Shape 对象,该对象代表“艺术字”,并将其添加至 Shapes 集合。expression.AddTextEffect(PresetTextEffect, Text, FontName, FontSize, FontBold, FontItalic, Left, Top, Anchor)expression   必需。该表达式返回一个 Shapes 对象。PresetTextEffect  MsoPresetTextEffect,必需。预设的文本效果。MsoPresetTextEffect 常量的值对应于“‘艺术字’库”对话框中所列的格式(按从上到下、从左到右的顺序排列)。MsoPresetTextEffect 可以是下列 MsoPresetTextEffect 常量之一: 
    msoTextEffect1 
    msoTextEffect10 
    msoTextEffect11 
    msoTextEffect12 
    msoTextEffect13 
    msoTextEffect14 
    msoTextEffect15 
    msoTextEffect16 
    msoTextEffect17 
    msoTextEffect18 
    msoTextEffect19 
    msoTextEffect2 
    msoTextEffect20 
    msoTextEffect21 
    msoTextEffect22 
    msoTextEffect23 
    msoTextEffect24 
    msoTextEffect25 
    msoTextEffect26 
    msoTextEffect27 
    msoTextEffect28 
    msoTextEffect29 
    msoTextEffect3 
    msoTextEffect30 
    msoTextEffect4 
    msoTextEffect5 
    msoTextEffect6 
    msoTextEffect7 
    msoTextEffect8 
    msoTextEffect9 
    msoTextEffectMixed Text  String 类型,必需。“艺术字”中的文字。FontName  String 类型,必需。“艺术字”中所用字体的名称。FontSize  Single 类型,必需。“艺术字”中所用字体的大小(以磅为单位)。FontBold  MsoTriState,必需。如果为 MsoTrue,则对“艺术字”字体应用加粗格式。MsoTriState 可以是下列 MsoTriState 常量之一: 
    msoCTrue  不用于该参数。 
    msoFalse  将“艺术字”所用字体设为常规字体。 
    msoTriStateMixed  不用于该参数。 
    msoTriStateToggle  不用于该参数。 
    msoTrue  将“艺术字”所用字体设为加粗格式。 FontItalic  MsoTriState,必需。如果为 MsoTrue,则对“艺术字”字体应用倾斜格式。MsoTriState 可以是下列 MsoTriState 常量之一: 
    msoCTrue  不用于该参数。 
    msoFalse  将“艺术字”所用字体设为常规字体。 
    msoTriStateMixed  不用于该参数。 
    msoTriStateToggle  不用于该参数。 
    msoTrue  将“艺术字”所用字体设为倾斜格式。 Left   Single 类型,必需。“艺术字”图形左边缘相对于锁定标记的位置,以磅为单位。Top   Single 类型,必需。“艺术字”图形上边缘相对于锁定标记的位置,以磅为单位。Anchor  Variant 类型,可选。Range 对象,代表“艺术字”所连接的文本。如果指定了 Anchor,则锁定标记将出现在锁定区域第一段的段首。如果忽略此参数,则自动选定锁定区域,而该“艺术字”将参照页面的上边缘和左边缘定位。说明
    向文档添加“艺术字”时,“艺术字”的宽度和高度将根据指定文字的大小和数量自动地进行设置。示例
    当应用于 CanvasShapes 对象时。本示例在新文档中添加一个画布,并在画布中插入包含文字“Hello, World”的“艺术字”图形。Sub NewCanvasTextEffect()
        Dim docNew As Document
        Dim shpCanvas As Shape    'Create a new document and add a drawing canvas
        Set docNew = Documents.Add
        Set shpCanvas = docNew.Shapes.AddCanvas( _
            Left:=100, Top:=100, Width:=150, _
            Height:=50)    'Add WordArt shape to the drawing canvas
        shpCanvas.CanvasItems.AddTextEffect _
            PresetTextEffect:=msoTextEffect20, _
            Text:="Hello, World", FontName:="Tahoma", _
            FontSize:=15, FontBold:=msoTrue, _
            FontItalic:=msoFalse, _
            Left:=120, Top:=120
    End Sub
    当应用于 Shapes 对象时。本示例在活动文档中添加包含文字“This is a test”的“艺术字”,然后将该“艺术字”锁定到第一段。Sub NewTextEffect()
        ActiveDocument.Shapes.AddTextEffect _
            PresetTextEffect:=msoTextEffect11, _
            Text:="This is a test", FontName:="Arial Black", _
            FontSize:=36, FontBold:=msoTrue, _
            FontItalic:=msoFalse, Left:=1, Top:=1, _
            Anchor:=ActiveDocument.Paragraphs(1).Range
    End Sub
      

  3.   

    to 龙卷风:我现在做的跟你写的一模一样,我的意思是要向跟word中插艺术字一样,有对话框供选者,还可以选者角度,而不是随机的。
    谢谢楼上的几位兄弟帮忙!
    请继续
      

  4.   

    to 大头:我要的是直接调用word中“艺术字”这种对象,而不是自己编写代码,谢谢你
      

  5.   

    以下是 VBA 中的宏, 你试着改写在VB 中。
    ====================================================================Sub Macro1()
    '
    ' Macro1 Macro
    ' 宏在 2002-7-24 由 S 录制
    '
        ActiveDocument.Shapes.AddTextEffect(msoTextEffect21, "dfwfw", "宋体", 36# _
            , msoFalse, msoFalse, 224.25, 130.85).Select
    End Sub