Hallo zusammen,
ich bin Programmieranfänger.
Ausgangssituation: Ich schreibe Berichte mit vielen Bildern, die in eine Tabelle (Vorgabe Arbeitgeber) eingefügt werden. Das Bildeinfügen läuft über ein Makro. Jetzt möchte ich eine Schleife mit Abfrage (MSGBOX) erstellen, ob ein weiteres Bild eingefügt werden soll. Wenn ja, dann soll Word Sendkey "{Tab}" ausführen, damit der blinkende Wordcursor in eine neu generierte Tabellenspalte springt und dort wieder ein Bild einfügen kann.
Problem: Sobald ich die Abfrage aktiviere, führt er Sendkey "{Tab}" irgendwo aus, eine neue Tabellenspalte wird nicht generiert, das neue Bild landet in der selben Tabellenspalte unter dem bereits eingfügten Bild. Deaktiviere ich die Abfrage, wird Sendkey "{Tab}" an der richtigen Stelle ausgeführt.
Frage1: Kann mir jemand mit dem oben geschrieben Problem eine Lösung anbieten oder mir Vorschläge zur Lösungsfindung machen?
Frage2: Könnt ihr über den Programmcode schauen und ggf. weitere Verbesserungsvorschläge machen?
Code: Sub GrafikTest()
Dim Verz As String
Dim Bild As InlineShape
Dim Breite As Single
Dim Hoehe As Single
Dim Altverz As String
Dim AbbText As String
Dim Antwort
'Do
' Antwort = MsgBox("ein (weiteres) Bild einfügen?", vbYesNo)
'If Antwort = vbYes Then
Verz = ActiveDocument.Path + "\Bilder\" 'Bildverzeichnis auswählen
Altverz = Options.DefaultFilePath(Path:=wdPicturesPath) 'Defaultverzeichnis speichern
Options.DefaultFilePath(Path:=wdPicturesPath) = Verz
Dialog BildEinfuegen, Verz + "*.*" 'öffne Dialog Grafik einfügen im Bildverzeichnis
'Bildänderungen vornehemen: Bildbreite vereinheitlichen, Abbilungstext generieren
For Each Bild In ActiveDocument.InlineShapes
If Bild.AlternativeText <> "belegt" Then
Breite = Bild.Width
Bild.Select
Hoehe = Bild.Height
Bild.Width = 340.5
Bild.Height = 340.5 / Breite * Hoehe
Bild.AlternativeText = "belegt" 'neu eingefügtes Bild für If-Abfrage ausschließen
Bild.Select
Selection.InsertCaption Label:="Abb.", TitleAutoText:= _
"", Title:=": Pos. ", Position:=wdCaptionPositionBelow, _
ExcludeLabel:=0
'SendKeys "{Tab}" 'generieren einer neues Tabellenspalte
End If
Next
Options.DefaultFilePath(Path:=wdPicturesPath) = Altverz 'Defaultverzeichnis hinterlegen
'End If
'Loop Until Antwort <> vbYes
End Sub
|