|
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.
|
|