Hallo,
ich hab folgende Aufgabe: Ich soll in ein Modul, das beim Starten des Dokuments (des einen Dokuments) automatisch ausgeführt wird, einen Code eingeben, der Fehlermeldungen unterdrückt. Die Bedingungen sind wie folgt:
- Wenn irgendein Fehler auftritt, soll Word
- keine Meldung ausgeben
- den Fehler ignorieren und hinsichtlich die fehlerhafte Funktion ausführen
- ansonsten normal weiterlaufen
- Der Code soll ein- und ausschaltbar sein.
Bis jetzt habe ich die folgenden Makros versucht (und mehrere wieder verworfen):
Sub AutoOpen()
'
' IgnoreAllErrors Makro
'
'
'Applications.MacroOptions ShortcutKey:="%^+F" -> Fehler
'ThisDocument.ShowGrammaticalErrors = False |
'ThisDocument.ShowSpellingErrors = False | -> Diese Art von Fehlermeldungen war nicht gemeint.
Dim ignoreErrors As Boolean
ignoreErrors = True
Call AddKeyTo_ChangeErrorIgnoring
'Do While ignoreErrors = True | -> Ohne "Loop" in der übernächsten Zeile ist die While-Schleife fehlerhaft.
' On Error Resume Next | -> Kommt in die nächste Zeile "Loop", führt die fertige While-Schleife zu einem Zusammenbruch!
'On Error Resume Next
Application.DisplayAlerts = False
'Application.OnKey "%^+f", "ChangeErrorIgnroing" -> Fehler: OnKey existiert hier nicht (und kleiner Tippfehler beim Makronamen :) )
End Sub
Sub ChangeErrorIgnoringOld()
If ThisDocument.ShowGrammaticalErrors = False And ThisDocument.ShowSpellingErrors = False Then
ThisDocument.ShowGrammaticalErrors = True
ThisDocument.ShowSpellingErrors = True
Else
ThisDocument.ShowGrammaticalErrors = False
ThisDocument.ShowSpellingErrors = False
End If
End Sub
Sub AddKeyTo_ChangeErrorIgnoring()
'Quelle: https://dr-thormaehlen.de/WORD/Makros_erstellen_und_aufrufen.pdf, Seite 6 von 11
Dim kb As KeyBinding
With Application
.CustomizationContext = ActiveDocument
Set kb = .FindKey(BuildKeyCode(wdKeyControl, wdKeyAlt, wdKeyShift, wdKeyF))
'Ist das Tastaturkürzel bereits zugewiesen?
'If Len(kb.Command) > 0 Then
' MsgBox kb.KeyString & " Tastenkürzel gehört bereits zum Befehl " & vbCrLf & "'" & _
' kb.Command & "'", vbInformation, "Tastenzuordnung"
'Else
.KeyBindings.Add _
KeyCode:=BuildKeyCode(wdKeyControl, wdKeyAlt, wdKeyShift, wdKeyF), _
KeyCategory:=wdKeyCategoryMacro, _
Command:="ChangeErrorIgnoring"
' MsgBox "KeyBindingsAdd = " & _
' .FindKey(BuildKeyCode(wdKeyControl, wdKeyAlt, wdKeyShift, wdKeyF)).Command, _
' vbInformation, "Tastenzuordnung"
'End If
End With
End Sub
Sub ChangeErrorIgnoringOld2()
If ignoreErrors = True Then
ignoreErrors = False
On Error GoTo 0
Else
ignoreErrors = True
On Error Resume Next
End If
End Sub
Sub ChangeErrorIgnoring()
If Application.DisplayAlerts = True Then
Application.DisplayAlerts = False
Else
Application.DisplayAlerts = True
End If
End Sub
Kann mir jemand bitte weiterhelfen? Ich komme irgendwie einfach nicht weiter.
LG
|