Hallo ! Also keine Angst habe die Aufgabe nicht vergessen. Fields in Word sind Bereiche die wie Text aussehen aber spezielle Eigenschaften haben. Bspw. kann man Code ausführen lassen, die Seitenzahl anzeigen lassen etc. Ist wie bei einem Serienbrief, bei dem in die selben Felder immer der Name etc. kommt. Diese Bereich sind praktisch Fields. Unten mal ein Beispiel einfach in ein Modul packen und ausführen. Der erste Button (so wie du ihn kennst) ist als Inlineshape angelegt. Er ist praktisch mittem im Text. Wenn du ihn vor den Text holst wird er zu einem Shape. Soweit nur zur Erklärung. Das Problem dabei ist, dass diesen Buttons ein fester COde zugewiesen werden muss. Der sieht dann so aus. CommandButton1_Click() Das dynamisch zu machen, so einen Button anlegen und dann nen Code zuweisen, geht mW nicht (das mit dem Code zuweisen). Da würde nur die Variante gehen, auf Blatt eins einen Button mit Auswahl der Seite zum Löschen (und ggf. verschieben des Button bei Auswahl Seite 1).
Bei dem Field (das Rote im Beispiel) geht das mit dem Code zuweisen. Wäre aber zu schön, wenn es da nicht einen Nachteil gibt. Der Button liegt im Text (kann also nicht verschoben werden). Er müsste also in den Textfluß eingebunden werden (oder evtl. Kopf und Fußzeile). Und vor dem Drucken müsste er raus (evtl. in einer Schleife) oder händisch Einstellungen am System vorgenommen werden.
Jetzt ist die Frage, was wollen wir probieren, um das Löschen mit zu implementieren. Schau dir mal das Beispiel an und melde dich bitte nochmal. VG
Sub schalter()
Dim neu2
Selection.TypeText Text:="ich bin ein Schalte vom Type inlineshape"
Selection.TypeParagraph
Set neu2 = ActiveDocument.Content.InlineShapes.AddOLEControl(ClassType:="Forms.CommandButton.1", Range:=ActiveDocument.Paragraphs.Last.Range)
neu2.OLEFormat.Object.Caption = "Click Here2"
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
Selection.TypeText Text:="ich bin ein Schalter vom Type field"
Selection.TypeParagraph
ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, PreserveFormatting:=False
Selection.Range.Text = "MACROBUTTON neu Dopelt anklicken"
Selection.TypeBackspace
Selection.Fields.Update
ActiveDocument.Fields(2).Select
Selection.Range.HighlightColorIndex = wdRed
End Sub
Sub neu()
MsgBox "Ich bin ein Field"
End Sub
|