Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: SVG über VBA einfügen und Datei als PDF speichern

SVG über VBA einfügen und Datei als PDF speichern
24.05.2018 10:15:30
Susanne
Hallo,
ich füge in meine Datei mittels VBA eine svg ein. Der Code dafür lautet:
With wsVorlage.Pictures.Insert(ThisWorkbook.Path & "\Logo.svg")
.Top = 25
.Left = 430
.Height = 50
End With
Wenn ich die Excel Datei nun als PDF abspeichere, wird das Logo völlig verzogen und in die Höhe gestreckt.
Wenn ich hingegen die svg Grafik über Einfügen - Bild einfüge, dann wird diese beim Abspeichern als PDF nicht verzogen.
Kann mir jemand weiterhelfen, warum das so ist? Und wie man dieses Problem lösen kann?
Vielen Dank schon mal :)
Grüße, Susi
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SVG über VBA einfügen
24.05.2018 10:19:27
mmat
lass doch einfach mal ".Height = 50" weg.
AW: SVG über VBA einfügen
24.05.2018 10:43:50
Susanne
Hm aber dann ist das Logo ja viel zu groß...
AW: SVG über VBA einfügen
24.05.2018 10:45:59
Susi
Und verzogen wird es leider trotzdem.
Anzeige
AW: SVG über VBA einfügen
24.05.2018 10:52:35
mmat
Dann setz eben noch ein ".Width=?" hinzu, wobei der bei ? übergebene Wert genau dem Seitverhältnis entspricht. Wenn das Original eine Größe von Höhe:512*Breite:768 hat, dann muß hier eine 75 hin.
AW: SVG über VBA einfügen
24.05.2018 11:01:05
Susi
Hallo,
danke für deine Antwort. Ich glaube da gibt es ein Missverständnis. Wenn ich das Excel geöffnet habe und das Logo eingefügt ist, passt alles. Erst wenn ich es als PDF abspeichere, wird das Logo verzerrt. Davor ist es mit den richtigen Seitenverhältnissen drin.
Danke schon mal.
Anzeige
AW: SVG über VBA einfügen
24.05.2018 11:16:44
mmat
Ja, wenn das so ist, dann kannst noch versuchen ein
.Placement = xlFreeFloating
einzubauen.
Ich hoffe das hilft. leider hab ich hier kein SVG zum rumprobieren.
AW: SVG über VBA einfügen
24.05.2018 11:51:59
Susi
Hilft leider auch nicht :( Trotzdem vielen Dank für deine Mühe!
Vielleicht hat jemand anders noch eine Idee o.w.T
24.05.2018 13:44:04
mmat
Anzeige
Hallo, ...
24.05.2018 14:31:20
Peter(silie)
... versuchs so:
Option Explicit
Sub InsertSVG()
Dim svgPath As Variant
svgPath = Application.GetOpenFilename("Scalable Vector Graphics (*.svg), *svg")
If svgPath  False Then
With ActiveSheet.Pictures.Insert(svgPath)
With .ShapeRange
.LockAspectRatio = msoTrue
.Height = 50
End With
.Left = 25
.Top = 430
.Placement = 1
.PrintObject = True
End With
End If
End Sub

Anzeige
AW: Hallo, ...
24.05.2018 14:58:06
Susi
Hilft leider ebenfalls nicht...
Seltsam ist auch, dass ich eine andere Excel Datei habe, in der das Logo auch ein svg ist, und über exakt denselben Code Schnipsel an derselben Stelle eingefügt wird, und wenn ich diese Datei als PDF abspeichere bleibt das Logo schön so wie es ist. Ich glaub da will mich jemand verarschen :(
Vielen Dank auf jeden Fall! Ich bin echt froh um jede Hilfe.
Anzeige
AW: Hallo, ...
24.05.2018 16:53:10
mmat
Hallo Susi,
also wenns im einen Fall so ist und im andern Fall anders, dann muss es einen Unterschied geben. Wahrscheinlich in den Bearbeitungsschritten nach dem Einfügen. Vielleicht sowas wie ein Optimieren der Spaltenbreite ?
Einen kleinen Kobode, der dich zum Besten halten will, gibt's leider nicht.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

SVG in Excel einfügen und als PDF speichern


Schritt-für-Schritt-Anleitung

Um eine SVG-Datei in Excel einzufügen und diese korrekt als PDF zu speichern, kannst du den folgenden VBA-Code verwenden:

Option Explicit
Sub InsertSVG()
    Dim svgPath As Variant
    svgPath = Application.GetOpenFilename("Scalable Vector Graphics (*.svg), *svg")
    If svgPath <> False Then
        With ActiveSheet.Pictures.Insert(svgPath)
            With .ShapeRange
                .LockAspectRatio = msoTrue
                .Height = 50 ' Passe die Höhe an
            End With
            .Left = 25 ' Position des Bildes
            .Top = 430
            .Placement = 1
            .PrintObject = True
        End With
    End If
End Sub

Dieser Code öffnet einen Dialog, um eine SVG-Datei auszuwählen, und fügt das Bild in das aktive Arbeitsblatt ein. Achte darauf, die Höhe anzupassen, damit das SVG nicht verzogen wird.


Häufige Fehler und Lösungen

  1. Das SVG wird verzogen:

    • Achte darauf, die .LockAspectRatio-Eigenschaft auf msoTrue zu setzen, um das Seitenverhältnis zu wahren.
    • Vermeide es, nur die Höhe oder Breite zu setzen, ohne die andere Dimension zu berücksichtigen.
  2. SVG wird nicht angezeigt:

    • Überprüfe, ob die SVG-Datei korrekt geladen wurde. Manchmal kann es zu Problemen beim Öffnen der .svg-Datei kommen, insbesondere wenn sie nicht mit Excel kompatibel ist.
  3. Bild in einer PDF verzerrt:

    • Wenn die SVG-Datei in der PDF verzerrt ist, kann es hilfreich sein, die .Placement-Eigenschaft zu ändern. Probiere xlFreeFloating aus.

Alternative Methoden

Wenn du SVG-Dateien in PowerPoint oder Word einfügen möchtest, kannst du ähnliche VBA-Methoden verwenden. Hier ein Beispiel für PowerPoint:

Sub InsertSVGInPowerPoint()
    Dim pptSlide As Slide
    Set pptSlide = ActivePresentation.Slides(1)
    Dim svgPath As Variant
    svgPath = Application.GetOpenFilename("Scalable Vector Graphics (*.svg), *svg")
    If svgPath <> False Then
        pptSlide.Shapes.AddPicture(svgPath, msoFalse, msoCTrue, 100, 100, -1, -1
    End If
End Sub

Praktische Beispiele

  • Excel Logo SVG: Du kannst das Excel-Logo als SVG in deine Excel-Datei einfügen, um es in Berichten oder Präsentationen zu verwenden.

  • Kreuz SVG: Wenn du ein Kreuz-SVG für Diagramme oder zur Hervorhebung verwenden möchtest, kannst du es ebenfalls über die oben genannten Methoden einfügen.


Tipps für Profis

  • SVG-Optimierung: Es kann hilfreich sein, SVG-Dateien vor dem Import in Excel zu optimieren, um die Dateigröße zu reduzieren und die Kompatibilität zu erhöhen.

  • VBA Vector Grafiken: Wenn du regelmäßig mit Vektorgrafiken arbeitest, kannst du eine Bibliothek erstellen, die häufig verwendete SVG-Dateien enthält, um den Importprozess zu beschleunigen.


FAQ: Häufige Fragen

1. Wie kann ich eine .svg-Datei in Excel öffnen?
Du kannst eine SVG-Datei in Excel über das Menü "Einfügen" > "Bilder" oder durch den Einsatz von VBA, wie im obigen Beispiel gezeigt, öffnen.

2. Warum wird mein Bild in der PDF verzerrt?
Das liegt häufig daran, dass die Höhe oder Breite nicht korrekt gesetzt ist. Stelle sicher, dass .LockAspectRatio auf msoTrue gesetzt ist und passe beide Dimensionen entsprechend an.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige