通过OLE在Word文档中添加TEXT watermak

2020-09-16 00:21发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 任何人都可以在OLE...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

任何人都可以在OLE中为我提供在Word文档中插入文本水印的代码。

我正在尝试根据宏录制使用以下代码,但是它不起作用。

请帮助。

创建对象gv_wordapp'WORD.APPLICATION'。
设置gv_wordapp'Visible'的属性=1。


gv_wordapp'Documents'的调用方法= lv_worddoc。

lv_worddoc'打开'
导出
#1 = l_filename。

的调用方法gv_wordapp'ActiveDocument'= lv_wordadoc。



的调用方法 gv_wordapp'ActiveWindow'= w_activewindow.CALL的调用方法w_activewindow'ActivePane'= w_activepane.w_activepane的调用方法'View'= w_activeview。
设置w_activeview的属性'SeekView'='9'。 "标题视图。

获取gv_wordapp"选择" = w_selection的属性。
获取w_selection的属性" HeaderFooter" = w_headfoot。
获取w_headfoot的属性"形状" = w_shapes。

w_shapes'AddTextEffect'的调用方法= W_SHAPE

导出
#1 ='PowerPlusWaterMarkObject221372499'
#2 ='正在批准'
#3 ='Calibri'
#4 ='44'
#5 ='0'
#6 ='0'
#7 ='0'
#8 ='0'。

w_shape'Select'的调用方法。

获取gv_wordapp"选择" = w_selection1的属性。

获取w_selection1'ShapeRange'= w_range的属性

w_range'Name'的set属性='PowerPlusWaterMarkObject221372499'。

获取w_range'TextEffect'的属性= w_text.S

w_text'NormalizedHeight'='0'的属性。

获取W_range'Line'= w_line的属性。

设置w_line'可见'='0'的属性。
获取w_range'填充'= w_fill的属性。

w_fill'Visible'的set属性='-1'。w_fill'Solid'的调用方法。

获取w_fill'ForeColor'= W_Colour的属性。

设置w_colour'RGB'='11776947'的属性。

w_fill'透明度'的设置属性='0.5'。


w_range'旋转'的设置属性='315'。

w_range'LockAspectRatio'='-1'的set属性。

w_range'Height'='80'的set属性。

设置w_range'Width'='150'的属性。
获取w_range'WrapFormat'= w_wrap的属性。

w_wrap'AllowOverlap'的set属性='3'。

w_wrap'Side'的set属性='3'.w_wrap'Type'的set属性='3'。

w_range'RelativeHorizo​​ntalPosition'='0'的set属性。

w_range'RelativeVerticalPosition'='0'的set属性。

w_range'Left'='-999995'的set属性。

w_range'Top'='-999995'的set属性。

w_activeview的设置属性'SeekView'='0'。

lv_wordadoc'保存'的调用方法。

gv_wordapp"退出"的调用方法。

致谢

Sweta

10条回答
SAP砖家
2020-09-16 00:42
让我通过回答我的问题(即宏代码)来为您提供帮助。 我不得不花时间来获取它,这太荒谬了,因为您本来可以给我们的(您也看到我没有与您的代码相同的代码,所以请继续下面的代码作为讨论的基础进行讨论):
 ActiveDocument.Sections(1).Range.Select  Window.ActivePane.View.SeekView = wdSeekCurrentPageHeader 
Selection.HeaderFooter.Shapes.AddTextEffect(PowerPlusWaterMarkObject,_
" WATERMARKTEXT"," Calibri", 1,False,False,0,0).Select
Selection.ShapeRange.name =" PowerPlusWaterMarkObject"
Selection.ShapeRange.TextEffect.NormalizedHeight = False
Selection.ShapeRange.Line.Visible = False
Selection.ShapeRange.Fill.Visible =真
Selection.ShapeRange.Fill.Solid
Selection.ShapeRange.Fill.ForeColor.RGB = RGB(192,192,192)
Selection.ShapeRange.Fill。 透明度= 0.5
Selection.ShapeRange.Rotation = 315
Selection.ShapeRange.LockAspectRatio =真
Selection.ShapeRange.Height = CentimetersToPoints(3.98)
Selection.ShapeRange.Width = Centi meterToPoints(18.58)
Selection.ShapeRange.WrapFormat.AllowOverlap = True
Selection.ShapeRange.WrapFormat.Side = wdWrapNone Selection.ShapeRange.RelativeHorizo​​ntalPosition =
Selection.ShapeRange.RelativeVerticalPosition = wdRelativeVerticalPositionMargin
Selection.ShapeRange.Left = wdShapeCenter ActiveWindow.ActivePane.View.SeekView = wdSeekSoMainDocument
,您的问题是有关" PowerPlusWaterMarkObject"(AddTextEffect的第一个参数)的值的。 奇怪的是,VBA调试器说它的值为" Empty",类型为" Variant/Empty"。

函数AddTextEffect(_ 
PresetTextEffect As MsoPresetTextEffect,_
Text as String,_
FontName作为字符串,_
FontSize作为单个,_
FontBold作为MsoTriState,_
FontItalic作为MsoTriState,_
左作为单个,_
Top作为单个,_
[ 锚])_
作为形状

我接下来看到MsoPresetTextEffect的类型为" Enum"。 通过输入代码"虚拟=

MsoPresetTextEffect"。 该建议提出了可能的值的列表,例如msoTextEffect1等,但我找不到PowerPlusWaterMarkObject。 任意地,我尝试使用msoTextEffect1(对象资源管理器告诉我们它是" Const msoTextEffect1 = 0",因此在ABAP中它将是" = 0"。这是可行的。因此"空"在这里似乎被理解为零。

现在您的最后一个问题:水印显示为"艺术字"而不是水印,这是因为两者在技术上是相同的,但是要成为水印,必须将艺术字对象附加到页面的页眉部分 。如果不起作用,您可能错过了前三行之一:

 ActiveDocument.Sections(1).Range.Select 
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader < br> Selection.HeaderFooter.Shapes.AddTextEffect

一周热门 更多>