Добрый день.
Проблема следующая: не получается динамически создать макрос в документе Word.
Например, так:
Code:
REPORT ZTEST4 MESSAGE-ID sy.
INCLUDE ole2incl.
DATA: gs_word TYPE ole2_object ,
gs_documents TYPE ole2_object ,
gs_newdoc TYPE ole2_object ,
gs_selection TYPE ole2_object ,
gs_application TYPE ole2_object ,
gs_actdoc TYPE ole2_object ,
gs_font TYPE ole2_object .
DATA: field_value(30) TYPE c.
CREATE OBJECT gs_word 'WORD.APPLICATION' .
IF sy-subrc NE 0 .
MESSAGE s000(su) WITH 'Error while creating OLE object!'.
LEAVE PROGRAM .
ENDIF .
data lt_x type string_table.
data lwa_x like line of lt_x.
lwa_x = 'test'.
append lwa_x to lt_x.
SET PROPERTY OF gs_word 'Visible' = '1' .
CALL METHOD OF gs_word 'Documents' = gs_documents.
CALL METHOD OF gs_documents 'Add' = gs_newdoc
exporting #1 = 'c:\sap.dot'
#2 = 0
#3 = 0
#4 = 1 .
*CALL METHOD OF gs_newdoc 'Activate' = gs_actdoc.
data: begin of itab occurs 0,
str(255) type c,
end of itab.
itab-str = 'Selection.TypeText Text:="PRIVET"'. append itab.
itab-str = 'Selection.TypeParagraph'. append itab.
CALL METHOD OF gs_word 'Run'
exporting #1 = 'macros_sap'
#2 = itab.
"sy-subrc is always 2
IF sy-subrc NE 0 .
MESSAGE s000(su) WITH 'Error while calling macro!'.
LEAVE PROGRAM .
ENDIF .
Здесь смысл в том, что есть шаблон sap.dot в котором есть пустой макрос:
Sub macros_sap(ParameterArray() As String)
End Sub
И формируется таблица с телом макроса, но не срабатывает.
Идея в том, чтобы создать макрос который формируется динамически в программе и запустить его в документе Word.
Может кто подскажет, что не так.
В Excel такое возможно и работает, а в Word-е не получилось.