AW: @ Tino - PDF Zoom
18.11.2007 12:22:00
Mister
Hallo Tino,
jetzt bin ich dazu gekommen dein Makro zu testen. An und für sich funktioniert es aber ich bekomme beim Schliessen der Datei die Meldung, dass die Anwendung nicht gefunden werden konnte.
Hier mein angepasstes Makro: Vielleicht habe ich was falsch gemacht...?
Option Explicit
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hWnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nshowcmd As Long) As Long
Private Declare Function WaitForInputIdle Lib "user32" ( _
ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const STARTF_USESHOWWINDOW As Long = &H1&
Private Const INFINITE As Long = -1&
Private Const WAIT_OBJECT_0 As Long = 0
Private Const WAIT_TIMEOUT As Long = &H102&
Private Const WAIT_FAILED As Long = -1&
Public Enum wsaErrors
wsaNoError = 0
wsaStartError = 1
wsaTimeOut = 2
wsaOtherError = 3
End Enum
Public hWnd As Long
Public Const SW_HIDE = 0 ' Versteckt öffnen
Public Const SW_MAXIMIZE = 3 ' Maximiert öffnen
Public Const SW_MINIMIZE = 6 ' Minimiert öffnen
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNOACTIVATE = 4
Public Function DateiÖffnen(Aktion As String, Pfad As String, _
Ansicht As String) As Boolean
Call ShellExecute(hWnd, Aktion, Pfad, "", "", Ansicht)
End Function
Sub ShowHelp(control As IRibbonControl)
'Eine beliebige Datei öffnen...
Dim Pfad As String, Anzeige As String
CheckDatei
'Einfach den Pfad ändern und das war's....
Pfad = ActiveWorkbook.Path & "\Dienstplanorganizer 2008.pdf"
DateiÖffnen "open", Pfad, SW_MAXIMIZE
Anzeige = "1" 'Anzeige in PDF (siehe in PDF Anzeige)
Pfad = "[" & Right(Pfad, Len(Pfad) - InStrRev(Pfad, "\")) & "]"
Call Anzeige_100(Pfad, Anzeige)
End Sub
Sub Anzeige_100(datei As String, Anzeige As String)
Dim Zähler As Long
Prüfe_Nochmal:
If Prüfe(datei) = False Then
Sheets("Main").Select
'hier Titel des Fenster eingeben der nach _
Programmende angezeigt wird
Sleep (1000) 'warte mit Prüfung 1000 Millisekunden
Zähler = Zähler + 1
If Zähler > 5 Then GoTo Anwendungsfehler: 'nach 6 * 1000 Millisekunden Abbruch Schleife
GoTo Prüfe_Nochmal
End If
Sleep (1000)
Application.SendKeys "^(" & Anzeige & ")"
Exit Sub
Anwendungsfehler:
AppActivate "Microsoft Excel"
MsgBox "Konnte Anwendung nicht finden"
End Sub
Function Prüfe(Fenster As String) As Boolean
On Error GoTo fehler
AppActivate Fenster
Prüfe = True
Exit Function
fehler:
Prüfe = False
End Function
Sub CheckDatei()
Dim datei As String
Dim Text As String
datei = ActiveWorkbook.Path & "\Dienstplanorganizer 2008.pdf"
If Dir(datei) = "" Then
Text = "Die Hilfsdatei befindet sich nicht im gleichen Dateiordner wie der Dienstplanorganizer. "
MsgBox Text, vbInformation, "Hilfe anzeigen"
Exit Sub
End If
End Sub
Gruß
Martin
P.S. Nochmals vielen Dank