ist es möglich ein Bild in der Mitte des Bildschirms per VBA zentrieren?
Ich meine jeweils in der Mitte egal in welcher Zeile oder Spalte ich mich gerade befinde.
Gruß / Sonnenpeter
Function GetDeviceCaps Lib "gdi32" _
(ByVal hdc As Long, ByVal nIndex As Long) As Long
Declare
Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare
Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hdc As Long) As Long
Declare
Sub ShowWindow Lib "user32" _
(ByVal hwnd As Long, ByVal nCmdShow As Long)
Const HORZRES = 8
Const VERTRES = 10
'Abrufen der Bildschirmauflösung
Function GetScreenRes()
Dim lRval As Long
Dim lDc As Long
Dim lHSize As Long
Dim lVSize As Long
lDc = GetDC(0&)
lHSize = GetDeviceCaps(lDc, HORZRES)
lVSize = GetDeviceCaps(lDc, VERTRES)
lRval = ReleaseDC(0, lDc)
GetScreenRes = lHSize & "x" & lVSize
End Function
Sub Test()
Select Case GetScreenRes
Case "1280x1024"
MsgBox "1280"
Case "1024x768"
MsgBox "1024"
Case Else
'usw
MsgBox "unbekannte Auflösung"
End Select
End Sub
und mit
ActiveSheet.Shapes("Picture 1").width
ActiveSheet.Shapes("Picture 1").height
kriegst du die Breite und Höhe des Bildes "Picture 1".
Den Rest kannst du dir dann ja ausrechnen
Gruss Rainer
Um ein Bild in der Mitte des Bildschirms zu platzieren, kannst Du folgenden VBA-Code verwenden:
Öffne den VBA-Editor: Drücke ALT + F11
.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xls)" > Einfügen > Modul.
Kopiere den folgenden Code in das Modul:
Declare Function GetDeviceCaps Lib "gdi32" _
(ByVal hdc As Long, ByVal nIndex As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" _
(ByVal hwnd As Long, ByVal hdc As Long) As Long
Sub BildInMitte()
Dim lDc As Long
Dim lHSize As Long
Dim lVSize As Long
Dim BildBreite As Double
Dim BildHoehe As Double
' Bildschirmauflösung abfragen
lDc = GetDC(0)
lHSize = GetDeviceCaps(lDc, 8) ' HORZRES
lVSize = GetDeviceCaps(lDc, 10) ' VERTRES
ReleaseDC 0, lDc
' Bildgröße abfragen
BildBreite = ActiveSheet.Shapes("Picture 1").Width
BildHoehe = ActiveSheet.Shapes("Picture 1").Height
' Bild positionieren
With ActiveSheet.Shapes("Picture 1")
.Left = (lHSize / 2) - (BildBreite / 2)
.Top = (lVSize / 2) - (BildHoehe / 2)
End With
End Sub
Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8
, wähle BildInMitte
und klicke auf "Ausführen".
Wenn Du kein VBA verwenden möchtest, kannst Du das Bild auch manuell zentrieren:
Strg
-Taste gedrückt und ziehe das Bild in die Mitte des Bildschirms.Angenommen, Du hast ein Bild in Deinem Arbeitsblatt. Mit dem oben beschriebenen VBA-Code kannst Du es einfach in die Mitte des Bildschirms verschieben. Dies funktioniert sowohl in Excel 2003 als auch in neueren Versionen.
1. Wie kann ich die Bildschirmauflösung in Excel abfragen?
Du kannst die Funktion GetScreenRes
verwenden, um die aktuelle Bildschirmauflösung zu erhalten.
2. Funktioniert dieser Code in allen Excel-Versionen?
Der VBA-Code sollte in den meisten Excel-Versionen funktionieren, insbesondere ab Excel 2003. Achte jedoch darauf, dass Du die richtigen Berechtigungen für Makros hast.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen