Bild aus Zwischenspeicher an Zellgröße anpassen
Schritt-für-Schritt-Anleitung
Um ein Bild aus dem Zwischenspeicher in eine Excel-Zelle einzufügen und die Größe automatisch anzupassen, kannst Du das folgende VBA-Makro verwenden. Dies sorgt dafür, dass das Bild an die Zellgröße angepasst wird.
-
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu starten.
-
Gehe zu Einfügen
> Modul
, um ein neues Modul zu erstellen.
-
Füge den folgenden Code in das Modul ein:
Sub Bild_einfügen_und_Bildgröße_anpassen()
'Bild aus Zwischenspeicher einfügen
ActiveSheet.Paste
'abhängig von Zellposition und Zellgröße
Selection.Placement = xlMoveAndSize
'Größe formatieren :
If TypeName(Selection) = "Picture" Then 'nur wenn Grafik markiert ist :
With Selection.ShapeRange
.LockAspectRatio = False
'Die Höhe und Breite hier anpassen:
.Height = Application.CentimetersToPoints(3.3)
.Width = Application.CentimetersToPoints(4.5)
End With
End If
'Bild komprimieren
Application.SendKeys "w~"
Application.CommandBars.ExecuteMso "PicturesCompress"
End Sub
-
Schließe den VBA-Editor und kehre zu Excel zurück.
-
Kopiere ein Bild in die Zwischenablage und führe das Makro aus.
Das Bild wird in die aktive Zelle eingefügt und die Größe wird entsprechend angepasst.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode besteht darin, ein weiteres Makro zu verwenden, das das Bild an die Zellgröße anpasst, ohne das Seitenverhältnis zu verändern:
Sub Bild_einfügen_und_Bildgröße_anpassen1()
'Bild aus Zwischenspeicher einfügen
Dim X As Long, Y As Long, H As Long, B As Long
With ActiveCell
X = .Left: Y = .Top: H = .Height: B = .Width
End With
ActiveSheet.Paste
If TypeName(Selection) = "Picture" Then
With Selection.ShapeRange
.LockAspectRatio = False
.Left = X: .Top = Y: .Height = H: .Width = B
End With
End If
End Sub
Praktische Beispiele
Um ein Bild in eine Zelle zu zentrieren, kannst Du das folgende Makro verwenden:
Sub Bild_einfügen_und_Bildgröße_anpassen2()
'Bild aus Zwischenspeicher einfügen
Dim X As Long, Y As Long, H As Long, B As Long, R1 As Double, R2 As Double
With ActiveCell
X = .Left: Y = .Top: H = .Height: B = .Width
End With
ActiveSheet.Paste
If TypeName(Selection) = "Picture" Then
With Selection.ShapeRange
.LockAspectRatio = True
.Left = X: .Top = Y
R1 = .Width / B: R2 = .Height / H
If R1 < R2 Then
.Width = B
.Height = R1 * H
Else
.Height = H
.Width = R2 * B
End If
End With
End If
End Sub
Dieses Skript sorgt dafür, dass das Bild in der Zelle zentriert ist und das Seitenverhältnis beibehalten wird.
Tipps für Profis
- Experimentiere mit den Werten in den Makros, um das Bild optimal an die Zellgröße anzupassen.
- Nutze die Funktion
Application.CutCopyMode = False
, um den Auswahlrahmen um das eingefügte Bild zu entfernen.
- Wenn Du viele Bilder einfügst, könnte es sinnvoll sein, ein weiteres Makro zu erstellen, das die Größe aller Bilder in einem Arbeitsblatt automatisch anpasst.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass das Bild richtig in der Zelle zentriert ist?
Verwende das zweite Makro, das das Bild zentriert und das Seitenverhältnis beibehält.
2. Kann ich das Bild automatisch an die Zellgröße anpassen, ohne VBA zu verwenden?
In Excel gibt es keine native Funktion, um Bilder automatisch an Zellen anzupassen. VBA ist der effektivste Weg, um dies zu erreichen.
3. Ist das Anpassen der Bildgröße in Excel auch in älteren Versionen möglich?
Ja, die grundlegenden VBA-Funktionen sind auch in älteren Excel-Versionen verfügbar.