AW: Grafikgröße nach Hyperlink festlegen
17.05.2008 17:26:00
Reinhard
Hi Steffen,
SendKeys ist zwar unsicher weil man sie so ganz genau weiß wohin Sendkeys "sendet" aber wäre einen Versuch wert.
Rehctsklick unten auf den Blattnamen und dann dies reinkopieren:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Application.SendKeys "abc"
End Sub
wobei abc stellvertretend für die Zeichenfolge steht die du wenn das Bild erscheint auf der Tastatur eingeben würdest um das Bild zu verkleinern, die Auflösung zu ändern usw.
Wie man Alt, Strg usw. einbindet wird bei Sendkeys Hilfe erklärt.
Alternativ, so wie hier im nachfolgenden Code nach "xlMain" (also Excel) gesucht wird nach dem Fenster des Photoeditors suchen und die Größe ändern.
Leider kenne ich mich in API nicht doll aus um den Code umzuschreiben und wenn dein Level stimmt müssen wir halt warten bis sich jmd. meldet der funktionierend den Code hat.
Deshalb frage auf noch offen gestellt.
Code ist von Nepumuk in der Beitragsfolge: http://www.office-loesung.de/ftopic16697_0_0_asc.php
Gruß
Reinhard
Option Private Module
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y _
As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As _
String, ByVal lpWindowName As String) As Long
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Enum Constants
GWL_STYLE = -16
WS_MAXIMIZEBOX = &H10000
WS_MINIMIZEBOX = &H20000
WM_PAINT = &HF
SM_CXSCREEN = 0
SM_CYSCREEN = 1
xl_With = 600 'vorgegebene Breite der Anzeige
xl_Hight = 400 'vorgegebene Höhe der Anzeige
End Enum
Public Sub Fix_Application()
Dim xl_hwnd As Long
xl_hwnd = FindWindow("xlMain", vbNullString)
SetWindowLong xl_hwnd, GWL_STYLE, GetWindowLong(xl_hwnd, GWL_STYLE) And Not (WS_MINIMIZEBOX _
Or WS_MAXIMIZEBOX)
DrawMenuBar xl_hwnd
MoveWindow xl_hwnd, GetSystemMetrics(SM_CXSCREEN) / 2 - xl_With / 2, GetSystemMetrics( _
SM_CYSCREEN) / 2 - xl_Hight / 2, xl_With, xl_Hight, WM_PAINT
End Sub