Musterlösungen: Unterschied zwischen den Versionen

Aus VBA-wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 9: Zeile 9:
Öffnet die angegebene Datei in dem Programm, welches dafür vorgesehen ist. Eine Textdatei wird zum Beispiel standardmäßig im Notepad geöffnet.
Öffnet die angegebene Datei in dem Programm, welches dafür vorgesehen ist. Eine Textdatei wird zum Beispiel standardmäßig im Notepad geöffnet.


Im Kopf des (Klassen-)Moduls (unter 'Option Explicit'):
<span style="Color:gray">#</span><span style="Color:blue">If </span>VBA<span style="Color:gray">7</span><span style="Color:blue"> Then</span>
    <span style="Color:blue"> Private </span>Declare PtrSafe<span style="Color:blue"> Function </span>ShellExecute Lib <span style="Color:gray">"shell32.dll"</span> Alias <span style="Color:gray">"ShellExecuteA"</span> <span style="Color:gray">(</span><span style="Color:blue">ByVal </span>hwnd<span style="Color:blue"> As Long</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>strOperation<span style="Color:blue"> As String</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>strFile<span style="Color:blue"> As String</span><span style="Color:gray">,</span> _<span style="Color:blue">
        ByVal </span>strParameters<span style="Color:blue"> As String</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>strDirectory<span style="Color:blue"> As String</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>lngShowCmd<span style="Color:blue"> As Long</span><span style="Color:gray">)</span><span style="Color:blue"> As Long</span>
<span style="Color:gray">#</span><span style="Color:blue">Else</span>
    <span style="Color:blue"> Private </span>Declare<span style="Color:blue"> Function </span>ShellExecute Lib <span style="Color:gray">"shell32.dll"</span> Alias <span style="Color:gray">"ShellExecuteA"</span> <span style="Color:gray">(</span><span style="Color:blue">ByVal </span>hwnd<span style="Color:blue"> As Long</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>strOperation<span style="Color:blue"> As String</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>strFile<span style="Color:blue"> As String</span><span style="Color:gray">,</span> _<span style="Color:blue">
        ByVal </span>strParameters<span style="Color:blue"> As String</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>strDirectory<span style="Color:blue"> As String</span><span style="Color:gray">,</span><span style="Color:blue"> ByVal </span>lngShowCmd<span style="Color:blue"> As Long</span><span style="Color:gray">)</span><span style="Color:blue"> As Long</span>
<span style="Color:gray">#</span><span style="Color:blue">End If</span>
Dazu passend die Prozedur:
<span style="Color:blue">Public Sub </span>OpenFile<span style="Color:gray">(</span><span style="Color:blue">ByVal </span>strFullName<span style="Color:blue"> As String</span><span style="Color:gray">)</span>
   
    <span style="Color:green">' Prüfen, ob diese Datei existiert</span>
    <span style="Color:blue"> If </span>Dir<span style="Color:gray">(</span>strFullName<span style="Color:gray">)</span> <span style="Color:gray">=</span> <span style="Color:gray">""</span><span style="Color:blue"> Then Exit Sub</span>
   
    ShellExecute <span style="Color:gray">0,</span> <span style="Color:gray">"Open",</span> strFullName<span style="Color:gray">,</span> <span style="Color:gray">"",</span> <span style="Color:gray">"",</span> <span style="Color:gray">1</span><span style="Color:blue">
End Sub
== Hyperlink öffnen ==
== Hyperlink öffnen ==



Version vom 15. November 2018, 10:04 Uhr

Die folgenden Musterlösungen sollen nicht als 'Standardlösungen' gelten, sondern lediglich die Suche nach passenden Beispielen zu ganz speziellen Aufgaben darstellen.

Bei diesen Musterlösungen wird auf eine ausführliche Erklärung größtenteils verzichtet. Hier geht es nicht wie sonst in diesem Wiki um das Verständnis, sondern um eine funktionierende Lösung, die man gleich verwenden kann ;-)

Diese Lösungsvorschläge sind anwendungsunabhängig, wodurch sie also in Excel, PowerPoint und Word einsetzbar sind.

Datei in seinem Programm öffnen

Öffnet die angegebene Datei in dem Programm, welches dafür vorgesehen ist. Eine Textdatei wird zum Beispiel standardmäßig im Notepad geöffnet.

Im Kopf des (Klassen-)Moduls (unter 'Option Explicit'):

#If VBA7 Then
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal strOperation As String, ByVal strFile As String, _
        ByVal strParameters As String, ByVal strDirectory As String, ByVal lngShowCmd As Long) As Long
#Else
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal strOperation As String, ByVal strFile As String, _
        ByVal strParameters As String, ByVal strDirectory As String, ByVal lngShowCmd As Long) As Long
#End If

Dazu passend die Prozedur:

Public Sub OpenFile(ByVal strFullName As String)
    
    ' Prüfen, ob diese Datei existiert
    If Dir(strFullName) = "" Then Exit Sub
    
    ShellExecute 0, "Open", strFullName, "", "", 1
End Sub

Hyperlink öffnen

Im Kopf des (Klassen-)Moduls (unter 'Option Explicit'):

#If VBA7 Then
    Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal strOperation As String, ByVal strFile As String, _
        ByVal strParameters As String, ByVal strDirectory As String, ByVal lngShowCmd As Long) As Long
#Else
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal strOperation As String, ByVal strFile As String, _
        ByVal strParameters As String, ByVal strDirectory As String, ByVal lngShowCmd As Long) As Long
#End If

Dazu passend die Prozedur:

Public Sub FollowHyperlink(ByVal strHyperlink As String)
    ' WICHTIG: Der Hyperlink muss mit 'http://' bzw. 'https://' beginnen!
    
    ShellExecute 0, "Open", "Explorer.exe", "/e," & strHyperlink, vbNullString, 1
End Sub