Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: Abstand von Bildschirmecke

VBA: Abstand von Bildschirmecke
09.06.2008 12:50:00
Bildschirmecke
Hallo Fans,
ich habe folg. Problem:
In einem Sheets habe ich die PlotArea eines Diagrammes (eingebettet). Nun will ich durch Klicken auf bestimmte Stellen der PlotArea etwas bestimmtes bewirken. Dazu habe ich die entspr. Formeln zum Auslesen der Cursor-Koord. bereitgestellt. So schön so gut, das klappt auch alles.
Doch brauche ich den Abstand der linken oberen PlotArea-Ecke zur linken oberen Bildschirm-Ecke.
Ich möchte so erreichen, dass jedem Punkt der PlotArea ein xy-CursorKoord-Paar zugeordnet wird.
Dazu müssen einige Breiten am linken und oberen Bildschirm-Rand berechnet werden. Irgendwo habe ich mal ein Makro gesehen, was diese Breiten berechnet mit XXX.Width o.ä. Ich kann es aber nicht mehr finden.
Wer kann mir einem Verweis angeben?
GRuß aus Berlin Peter

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Abstand von Bildschirmecke
09.06.2008 13:01:00
Bildschirmecke
Hallo
Das ist gar nicht so einfach, da Application.Top, .Width usw. sich nur auf das aktuelle Fenster beziehen, das muss jedoch nicht zwingend mit der Position des Fenster und dem Bildschirm übereinstimmen, das Fenster kann ja irgendwo sein.
Kommt hinzu, dass Application.WindowState = xlMaximized auch nicht mit den Bildschirmkoordinaten übereinstimmen muss, wenn z.B. die Taskbar immer sichtbar ist (und Platz wegnimmt :-) ) oder und WO die Taskbar platziert ist.
Wenn Sie unten angebracht ist, geht das irgendwie noch, wenn Sie dagegen oben angebracht ist, stimmen deine ganzen Berechnungen nicht mehr.
Das Auslesen der Bildschirmgrösse ist dann noch etwas anderes
Das mal als Beispiel
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Enum ScreenArgs
HORIZONTAL
VERTIKAL
End Enum

Public Function ScreenResolution(HV As ScreenArgs) As Long
If HV = 0 Or HV = 1 Then ScreenResolution = GetSystemMetrics(HV)
End Function


Sub Set_Zoom()
'Die Werte hinter .Zoom den eigenen Bedürfnissen anpassen
Select Case ScreenResolution(0)
Case 1600
ActiveWindow.Zoom = 150
Case 1280
ActiveWindow.Zoom = 125
Case 1024
ActiveWindow.Zoom = 100
Case 800
ActiveWindow.Zoom = 75
Case 640
ActiveWindow.Zoom = 50
End Select
End Sub


Sub print_Screeen()
Debug.Print ScreenResolution(0)
Debug.Print ScreenResolution(1)
End Sub


Nun kannst du zumindest rudimentär, unter Berücksichtigung der vorgenannten Einschränkungen, berechnen WO dein Cursor gerade ist
Gruss Rainer

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige