Habe folgendes Problem:
Hab ein Makro in Word geschrieben in dem ich einfach mehrere Bilder auswählen kann und diese dann in ein Worddokument (3 Bilder pro Seite) mit Überschrift eingefügt werden!
Ich schaffe es jedoch einfach nicht das die Bilder automatisch zentriert werden sondern immer nur das erste Bild !
Ich bin neu in diesem Forum und bitte um Entschuldigung falls ich im falschen Ort poste!
Hier mein Code:
Vielen dank für eure Hilfe!
MfG Mayer Lukas
Edit by ~blaze~:
*Thema aus Grundlagen verschoben und vb-Tag eingefügt*
Hab ein Makro in Word geschrieben in dem ich einfach mehrere Bilder auswählen kann und diese dann in ein Worddokument (3 Bilder pro Seite) mit Überschrift eingefügt werden!
Ich schaffe es jedoch einfach nicht das die Bilder automatisch zentriert werden sondern immer nur das erste Bild !
Ich bin neu in diesem Forum und bitte um Entschuldigung falls ich im falschen Ort poste!
Hier mein Code:
Visual Basic-Quellcode
- Option Explicit
- Sub AddPicture(ByVal sFilename As String)
- If sFilename = "" Then
- MsgBox " Kein Dateiname!", vbInformation
- Exit Sub
- End If
- Dim x As Variant
- Dim objInlineShape As InlineShape
- Set objInlineShape = Selection.InlineShapes.AddPicture(FileName:= _
- sFilename, LinkToFile:=False, SaveWithDocument _
- :=True)
- Selection.TypeParagraph
- 'Scale Sperre
- objInlineShape.LockAspectRatio = msoTrue
- 'Zuerst Breite Einstellen
- objInlineShape.Width = 226.7634
- If objInlineShape.ScaleWidth > 0 Then
- objInlineShape.ScaleHeight = objInlineShape.ScaleWidth
- End If
- 'Dann nochmal Höhe prüfen
- If objInlineShape.Height > 170.0787 Then
- 'Hochformat
- 'Höhe kürzen
- objInlineShape.Height = 170.0787
- If objInlineShape.ScaleWidth > 0 Then
- objInlineShape.ScaleWidth = objInlineShape.ScaleHeight
- End If
- End If
- 'Beschriftung einstellen
- CaptionLabels.Add Name:="Abbildung"
- 'Beschriftung hinzufügen
- objInlineShape.Range.InsertCaption "Abbildung", , "bla", wdCaptionPositionAbove
- End Sub
- Sub GetFile()
- Const msoFileDialogOpen = 1
- Dim objWord As Application
- Dim objfile As Variant
- Dim lCurrentWindowstate As Long
- Set objWord = Application
- 'objWord.ChangeFileOpenDirectory ("C:\Scripts")
- objWord.FileDialog(msoFileDialogOpen).Title = "Bilder auswählen"
- objWord.FileDialog(msoFileDialogOpen).AllowMultiSelect = True
- objWord.FileDialog(msoFileDialogOpen).Filters.Add "Bilder", "*.gif; *.jpg; *.jpeg", 1
- lCurrentWindowstate = objWord.WindowState
- If objWord.FileDialog(msoFileDialogOpen).Show = -1 Then
- ' objWord.WindowState = 2
- For Each objfile In objWord.FileDialog(msoFileDialogOpen).SelectedItems
- AddPicture objfile
- Next
- End If
- objWord.WindowState = lCurrentWindowstate
- objWord.ScreenRefresh
- Set objWord = Nothing
- End Sub
Vielen dank für eure Hilfe!
MfG Mayer Lukas
Edit by ~blaze~:
*Thema aus Grundlagen verschoben und vb-Tag eingefügt*
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()