Musterlösungen: Unterschied zwischen den Versionen

Aus VBA-wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „Die folgenden Musterlösungen sollen nicht als 'Standardlösungen' gelten, sondern lediglich die Suche nach passenden Beispielen zu ganz speziellen Aufgaben da…“)
 
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Category:vba-wiki]]
Die folgenden Musterlösungen sollen nicht als 'Standardlösungen' gelten, sondern lediglich die Suche nach passenden Beispielen zu ganz speziellen Aufgaben darstellen.  
Die folgenden Musterlösungen sollen nicht als 'Standardlösungen' gelten, sondern lediglich die Suche nach passenden Beispielen zu ganz speziellen Aufgaben darstellen.  


Zeile 4: Zeile 5:


Diese Lösungsvorschläge sind anwendungsunabhängig, wodurch sie also in Excel, PowerPoint und Word einsetzbar sind.
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'):
<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 ==


Im Kopf des (Klassen-)Moduls (unter 'Option Explicit':
Öffnet den Hyperlink im Standard-Browser. Wenn dieser schon läuft, wird ein neuer Reiter 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:gray">#</span><span style="Color:blue">If </span>VBA<span style="Color:gray">7</span><span style="Color:blue"> Then</span>
Zeile 20: Zeile 47:


  <span style="Color:blue">Public Sub </span>FollowHyperlink<span style="Color:gray">(</span><span style="Color:blue">ByVal </span>strHyperlink<span style="Color:blue"> As String</span><span style="Color:gray">)</span>
  <span style="Color:blue">Public Sub </span>FollowHyperlink<span style="Color:gray">(</span><span style="Color:blue">ByVal </span>strHyperlink<span style="Color:blue"> As String</span><span style="Color:gray">)</span>
   
     <span style="Color:green">' WICHTIG: Der Hyperlink muss mit 'http://' bzw. 'https://' beginnen!</span>
     <span style="Color:green">' WICHTIG: Der Hyperlink muss mit 'http://' bzw. 'https://' beginnen!</span>
    <span style="Color:blue"> If </span>InStr<span style="Color:gray">(1,</span> strHyperlink<span style="Color:gray">,</span> <span style="Color:gray">"http",</span> vbTextCompare<span style="Color:gray">)</span> <span style="Color:gray">=</span> <span style="Color:gray">0</span><span style="Color:blue"> Then
        strHyperlink <span style="Color:gray">=</span> <span style="Color:gray">"http://"</span> & strHyperlink
    <span style="Color:blue"> End If</span>
      
      
     ShellExecute <span style="Color:gray">0,</span> <span style="Color:gray">"Open",</span> <span style="Color:gray">"Explorer.exe",</span> <span style="Color:gray">"/e,"</span> & strHyperlink<span style="Color:gray">,</span> vbNullString<span style="Color:gray">,</span> <span style="Color:gray">1</span><span style="Color:blue">
     ShellExecute <span style="Color:gray">0,</span> <span style="Color:gray">"Open",</span> <span style="Color:gray">"Explorer.exe",</span> <span style="Color:gray">"/e,"</span> & strHyperlink<span style="Color:gray">,</span> <span style="Color:gray">"",</span> <span style="Color:gray">1</span><span style="Color:blue">
  End Sub</span><span style="Color:gray">
  End Sub</span>

Aktuelle Version vom 28. Januar 2023, 00:35 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

Öffnet den Hyperlink im Standard-Browser. Wenn dieser schon läuft, wird ein neuer Reiter 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 FollowHyperlink(ByVal strHyperlink As String)
    
    ' WICHTIG: Der Hyperlink muss mit 'http://' bzw. 'https://' beginnen!
     If InStr(1, strHyperlink, "http", vbTextCompare) = 0 Then
        strHyperlink = "http://" & strHyperlink
    End If
    
    ShellExecute 0, "Open", "Explorer.exe", "/e," & strHyperlink, "", 1
End Sub