93. Grafik in Zelle zentrieren

Aufgabenstellung:

In dieser Beispieldatei geht es um das horizontale und vertikale Zentrieren einer Grafik in einer Zelle. In Beispiel 1 wird eine Grafik, dessen Pfad in 2 Zellen angegeben werden muss, in eine vordefinierte Zelle eingefügt und mittig in dieser Zelle zentriert.
Im 2. Beispiel wird die vorher markierte Zelle in eine Zelle, die in einer Inputbox angegeben werden muss, verschoben und ebenfalls mittig zentriert.

Dieses Beispiel steht auch als Beispieldatei zum Download zur Verfügung.
In der Zipdatei befindet sich eine xls-Datei für Excel 2000 - 2003 und eine xlsm-Datei für Excel 2007.


Realisiert wurde das durch eine VBA-Lösung.

Beispiel1: Hier wird eine Grafik, dessen Pfad und Dateiname in Zelle C2 und C3 eingetragen werden muss, in Zelle F4 eingefügt und mittig, d.h. horizontal und
vertikal ausgerichtet.

Die Code ist in ein StandardModul einzufügen


Option Explicit


Sub Grafik_zentrieren()
Dim Horizontal As Variant, Vertikal As Variant
Dim Bildhöhe As Variant, Bildbreite As Variant
Dim Bild As Picture
Dim Bilddatei As String
   
Application.ScreenUpdating = False

'Name und Pfad der Bilddatei aus Zelle C2 und C3 in Variable "Bilddatei" schreiben
Bilddatei = Range("C2").Value & Range("C3").Value

'Prüfen ob Bilddatei vorhanden. Wenn nicht, Bildschirmmeldung ausgeben
If Dir(Bilddatei) = "" Then
    MsgBox "Es wurde kein Bild, das eingefügt und zentriert werden könnte, gefunden.!" _
            , vbInformation, "Fehlendes Bild..."
    Exit Sub
End If
   
'Zellengröße abfragen
With Range("F4")
.Activate
Horizontal = .Left + .Width / 2
Vertikal = .Top + .Height / 2
End With
   
'Bildgröße abfragen
Set Bild = ActiveSheet.Pictures.Insert(Bilddatei)
Bildhöhe = Bild.Height / 2
Bildbreite = Bild.Width / 2
   
'Bild horizontal positionieren
Bild.Left = Horizontal - Bildbreite
'Bild vertikal positionieren
Bild.Top = Vertikal - Bildhöhe
End Sub

 

Beispiel2: Hier  wird eine Grafik, die vorher durch Anklicken markiert wurde, in eine Zelle, deren Adresse in einer Inputbox eingegeben werden muss (z.B. F4 oder J4) , eingefügt und mittig, d.h. horizontal und vertikal ausgerichtet.

Die Code ist in ein StandardModul einzufügen


Option Explicit


Sub markierte_Grafik_zentrieren()
Dim Horizontal As Variant, Vertikal As Variant
Dim Bildhöhe As Variant, Bildbreite As Variant
Dim Bild As Picture
Dim Bilddatei As String
Dim Zelladresse As Variant

On Error GoTo errorhandler

'Name des markierten Bildes ermitteln
Bilddatei = Selection.Name

'Bildgröße abfragen
Set Bild = ActiveSheet.Pictures(Bilddatei)
Bildhöhe = Bild.Height / 2
Bildbreite = Bild.Width / 2

'Eingabefenster zur Eingabe der Zelladresse einblenden
Zelladresse = InputBox("Bitte angeben in welcher Zelle das Bild zentriert werden soll")

'Wenn nichts eingetragen wurde, Prozedur beenden
If Zelladresse = "" Then Exit Sub

'Zellengröße abfragen
With Range(Zelladresse)
.Activate
Horizontal = .Left + .Width / 2
Vertikal = .Top + .Height / 2
End With
   
'Bild horizontal positionieren
Bild.Left = Horizontal - Bildbreite
'Bild vertikal positionieren
Bild.Top = Vertikal - Bildhöhe

Exit Sub

errorhandler:
MsgBox "Es wurde keine Grafik zum Zentrieren ausgewählt. " _
& "Bitte zuerst eine Grafik markieren", vbInformation, "fehlende Grafik, Abbruch..."

End Sub

 


Dieses Beispiel wurde unter den in der Tabelle aufgeführten Versionen getestet.

  A B C D E
1        

2

 

Excel - Version

Getestet

 
3      
4   Excel 2007 12.0 a  
5   Excel 2003 11.0 a  
6   Excel 2002 10.0 a  
7   Excel 2000 9.0 a  
8   Excel 97 8.0    
9          
10   Anzahl der Downloads:

 
11          
12   Dieses Beispiel wurde bereits  x aufgerufen.  
13    
14          

 


> Beispieldatei herunterladen <

  Sollten beim Ausführen der Beispieldatei Fehler auftreten, bitte ich darum, mir eine Mail mit der Fehlerbeschreibung an fehler@excelbeispiele.de zu schicken.
Danke!

 Möchten Sie www.excelbeispiele.de in Ihre Favoriten aufnehmen? Dann Klicken Sie hier.
 

Kontakt:

letzte Aktualisierung am 06.01.2008

© 2004 - Copyright Oliver Scheckelhoff,
All Rights Reserved