Bild aus Verzeichnis einfügen und Skalieren

Moderator: ModerationP

Bild aus Verzeichnis einfügen und Skalieren

Beitragvon Manu_87 » 24. Mai 2016, 10:22

Hallo zusammen,

ich möchte ein Bild aus einem Verzeichnis in eine Powerpoint einfügen und dann die Größe anpassen bzw. entsprechend skalieren:

Einfügen klappt hiermit ja schonmal
Code: Alles auswählen
ActivePresentation.Slides(ActivePresentation.Slides.Count).Shapes.AddPicture Filename:=Pfad, LinkToFile:=msoTrue, SaveWithDocument:=msoTrue, _
                                                                                       Left:=22, Top:=171 ', Width:=250 ', Height:=25


Ist es möglich direkt in dieser Codezeile auch zu Skalieren? Width und Height stehen hier aktuell nur Testweise.

Vielen Dank für eure Hilfe im Voraus
Manu
Manu_87
 

Re: Bild aus Verzeichnis einfügen und Skalieren

Beitragvon RTausD » 28. Jan 2019, 14:06

Hallo Manu,

ist Deine Anfrage noch aktuell?

Ich habe das bei mir so gelöst:

Code: Alles auswählen
Sub neues_Bild_in_aktueller_Folie()
    ActiveWindow.View.Slide.Shapes.AddPicture("Y:\USER\RT\PowerPoint Programmierbeispiele\Test.JPG", 0, 1, 0, 0, 960, 540).Select ' Datei, LinkToFile, SaveWithDocument, Left, Top, Width, Height
    ActiveWindow.View.Slide.Shapes.AddPicture("Y:\USER\RT\PowerPoint Programmierbeispiele\Test.PNG", 0, 1, 100, 200).Select ' Datei, LinkToFile, SaveWithDocument, Left, Top
    ActiveWindow.Selection.Unselect
End Sub


Der erste Befehl fügt ein Bild links oben ein und skaliert es auf Vollbild (bei 16:9 Foliengröße).
Der zweite Befehl fügt ein anderes Bild Position 100/200 unskaliert ein.

Ich habe allerdings noch nicht herausgefunden, wie man die Originalgröße des Bildes ermitteln kann, um ggf. proportional zu skalieren.
Vielleicht hat dazu jemand einen Tipp...

LG

Rolf
RTausD
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 245
Registriert: 24. Feb 2007, 10:51

Re: Bild aus Verzeichnis einfügen und Skalieren

Beitragvon RTausD » 28. Jan 2019, 15:59

Hallo nochmal,

ich habe herausgefunden, wie man in einer bestehenden Folie ein Bild selektieren , skalieren und positionieren kann.

So sieht das bei mir aus:

Code: Alles auswählen
Sub Bild_skalieren()
    Maximale_Breite = 960
    Maximale_Hoehe = 540
    Rand = 50
    ActiveWindow.View.Slide.Shapes.AddPicture("Y:\USER\RT\PowerPoint Programmierbeispiele\Test.PNG", 0, 1, 100, 200).Select ' Datei, LinkToFile, SaveWithDocument, Left, Top
    Hoehe = ActiveWindow.View.Slide.Shapes(1).Height
    Breite = ActiveWindow.View.Slide.Shapes(1).Width
'    MsgBox ("Bildgroesse " & Breite & " x " & H?he)
    If Hoehe * (Maximale_Breite - 2 * Rand) / Breite > Maximale_Hoehe Then
        ActiveWindow.View.Slide.Shapes(1).Height = Maximale_Hoehe - 2 * Rand
    Else
        ActiveWindow.View.Slide.Shapes(1).Width = Maximale_Breite - 2 * Rand
    End If
    Position_Horizontal = (Maximale_Breite - ActiveWindow.View.Slide.Shapes(1).Width) / 2
    Position_Vertikal = (Maximale_Hoehe - ActiveWindow.View.Slide.Shapes(1).Height) / 2
'    MsgBox ("Bildgroesse " & Breite & " x " & Hoehe & Chr(10) & "Position " & Position_Horizontal & Chr(9) & Position_Vertikal)
    ActiveWindow.View.Slide.Shapes(1).Left = Position_Horizontal
    ActiveWindow.View.Slide.Shapes(1).Top = Position_Vertikal
End Sub


jetzt müsste es nur noch eine Möglichkeit geben, einem Bild beim Import einen Namen zu geben, so dass man es auswählen kann, auch wenn man nicht weiß, das wievielte Bild es ist...

LG

Rolf
RTausD
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 245
Registriert: 24. Feb 2007, 10:51

Re: Bild aus Verzeichnis einfügen und Skalieren

Beitragvon DerHoepp » 28. Jan 2019, 16:25

Hallo auch von mir,

du solltest auf die View()-Eigenschaften und die Window-Collection verzichten. Die sind eigentlich nur Hilfsklassen, die mit der Präsentation an sich nichts zu tun haben und davon abhängig sind, welche Slide in welcher Ansicht der Nutzer gerade offen hat. Nutze stattdessen die Slides()-Collection. Wenn du die LockAspectRatio des Shapeobjekts auf True setzt, reicht es, eine Dimension des Bildes zu ändern und die andere wird automatisch mitgezogen. Einen Namen kannst du dem zugehörigen Shapeobjekt einfach mitgeben:
Code: Alles auswählen
Option Explicit

Sub einfuegen()
'Bild einfügen
    With ActivePresentation.Slides(1).Shapes.AddPicture("C:\Daten\129258.jpg", msoFalse, msoTrue, 0, 0) 'Gibt das eingefügte Bild direkt als Shape-Objekt an den With-Block weiter
        'Dafür sorgen, dass eine Änderung einer Dimension die andere mitändert
        .LockAspectRatio = msoTrue
        'Breite des Bildes auf die Breite der Presentation setzen (Über PageSetup zu erreichen)
        .Width = ActivePresentation.PageSetup.SlideWidth
        'Einen Namen vergeben, damit man das Bild anhand seines Namens findet und nicht die Shapes-Collection durchlaufen muss
            'Aber Achtung: Der Name muss eindeutig sein.
        .Name = "MeinEigenesBild"
    End With
End Sub

Sub auslesen()
    'Beispielhaftes auslesen einer Eigenschaft anhand des Namens des Bildes.
    Debug.Print ActivePresentation.Slides(1).Shapes("MeinEigenesBild").Width
End Sub
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8782
Registriert: 14. Mai 2013, 11:08

Re: Bild aus Verzeichnis einfügen und Skalieren

Beitragvon RTausD » 29. Jan 2019, 15:31

VIELEN DANK
RTausD
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 245
Registriert: 24. Feb 2007, 10:51


Zurück zu PowerPoint Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast