none
InlineShapes skalieren funktioniert nicht richtig RRS feed

  • Frage

  • Hallo zusammen,
    ich habe in einer Tabelle in zwei Spalten InlineShapes eingefügt. Nun möchte ich ausschließlich in einer Spalte diese Bilder skalieren. Dafür habe ich die folgende Routine:

    Sub Skalieren(scal As Single)
        Dim objImageShape As InlineShape, rng As Range
        ActiveDocument.Tables(1).Columns(3).Select
        Set rng = selection.Range
        For Each objImageShape In rng.InlineShapes
            With objImageShape
                .ScaleWidth = .ScaleWidth * scal
                .ScaleHeight = .ScaleHeight * scal
            End With
        Next
    End Sub

    D.h., die Bilder in Spalte 3 sollen skaliert werden mit Faktor scal. Die Bilder, die sich in Spalte 2 befinden, sollen ihre Größe behalten.
    Wenn ich aber diese Funktion anwende, wird sofort begonnen, das erste Bild in Spalte 2 zu skalieren. Letztendlich werden ALLE Bilder in der Tabelle skaliert...

    Was ist da falsch?

    Grüße-


    Dietrich

    Freitag, 9. März 2018 13:31

Alle Antworten

  • Was ist da falsch?

    Das übliche, benutze niemals SELECT, SELECTION, ACTIVECELL, es ist langsam und fehleranfällig. Referenziere immer die Objekte.

    Andreas.

    Sub Skalieren(scal As Single)
      Dim C As Cell
      Dim objImageShape As InlineShape
    
      For Each C In ActiveDocument.Tables(1).Columns(3).Cells
        For Each objImageShape In C.Range.InlineShapes
          With objImageShape
            .ScaleWidth = .ScaleWidth * scal
            .ScaleHeight = .ScaleHeight * scal
          End With
        Next
      Next
    End Sub

    Samstag, 10. März 2018 10:45
  • Danke für den Tipp, Andreas1

    Werde das Ganze jetzt mal erneut ausprobieren...

    Grüße-


    Dietrich

    Montag, 12. März 2018 08:27