Ich möchte ein Word file mit ABAP updaten.
Es soll nach dem Wort ‘Hello’ gesucht werden und alle Zeichen nach diesem Wort gelöscht werden. Anschließend soll hier ein anderer Text geschrieben werden.
Beispiel für Input:
Line 1
Line 2
Hello
Line 4
Line 5
Line 6
Line 7
So sollte das Ergebnis aussehen:
Line 1
Line 2
Hello
New comment 1
Richtig? ☐
Wie become ich das hin?
Hier mein Anfangscoding
INCLUDE ole2incl .
SELECTION-SCREEN BEGIN OF BLOCK a40 WITH FRAME TITLE text-s02.
PARAMETERS: p_pfad TYPE trfile default 'D:\HelloTest1' .
SELECTION-SCREEN: END OF BLOCK a40.
data gd_pfad TYPE trfile.
* ole
DATA: h_word TYPE ole2_object ,
h_documents TYPE ole2_object ,
h_docs TYPE ole2_object ,
h_activedoc TYPE ole2_object,
h_bookmarks type ole2_object,
h_bookmark type ole2_object,
h_content TYPE ole2_object,
h_range type ole2_object,
h_selection TYPE ole2_object,
h_replacement type ole2_object,
h_font TYPE ole2_object,
h_find TYPE ole2_object.
CREATE OBJECT h_word 'WORD.APPLICATION'.
SET PROPERTY OF h_word 'Visible' = '0' . "1 für Test
* open document
CALL METHOD OF h_word 'Documents' = h_docs.
concatenate p_pfad '.docx' into gd_pfad.
CALL METHOD OF h_docs 'Open' = h_documents
EXPORTING #1 = gd_pfad .
CALL METHOD OF h_word 'ActiveDocument' = h_activedoc.
CALL METHOD of h_activedoc 'Activate'.
Zeichne Dir am einfachsten, das was Du machen möchtest mit Word-Makros auf, wenn Du die VBA Befehle nicht kennst.
Im Endeffekt werden per Ole einfach die entsprechenden Methoden ausgeführt.
Hallo,
leider komme ich noch nicht so ganz zurecht. Mit den Word-Makros habe ich noch ein Problem:
Wie bekomme ich dieses Makro in mein ABAP-Programm?
Ich verwende dort schon grundsätzlich Makros, z. B.
define olewrite.
cALL METHOD OF gd_selection 'TypeText'
EXPORTING #1 = &1.
end-of-definition.
Dieses Makro funktioniert.
Wie muss ich das Delete-Makro nach ABAP übertragen?
Für das Suchen hat er mir keine Makro-Aufzeichnung gemacht.
Sub MakroSuchen()
'
' MakroSuchen Makro
' Suche Wort
'
End Sub
Könnt Ihr mir da ein Beispielcoding für ABAP zur Verfügung stellen. Danke!
Schau mal hier: http://www.tricktresor.de/blog/methoden-word/
Das hilft dir, die Visual-Basic-Befehle in ABAP zu übersetzen.
Ist allerdings nicht ganz trivial, weil du immer das passende Objekt erzeugen musst um dann dessen Methoden aufrufen zu können.