Forum des VBA-Tutorials

WORD IF ... THEN ... Call Function ... ELSE ... EndIF (VBA)

Martin Asal, Donnerstag, 12. Oktober 2017, 13:51 (vor 6 Tagen) @ Ausgeheckt

was sollte ich besser machen?

Kürzen.

Vieles muss ich jetzt erraten. Wahrscheinlich hast du nicht nur diese 3 Checkboxen, sondern viele weitere, die alle fast identischen Code aufweisen. Und sie alle rufen jeweils eine spezifische Funktion auf - die u.U. auch immer fast gleich aussieht.

InspDiaFAN1 wird wahrscheinlich nur von CBInspDiaFAN_Click aufgerufen, also ist InspDiaFAN1 nicht nötig. Die ganze Function kann gleich in CBInspDiaFAN_Click integriert werden.

Falls aber InspDiaFAN1, InspDiaSIE1 und ähnliche Functions jeweils fast identisch aufgebaut sein sollten, kannst du den Code wie folgt pflegeleichter aufbauen:

Public Sub CBInspDiaSIE_Click()
If cbinspDiaSIE.Value = True Then
  InspDia "SIE"
  cbinspDiaSIE.Caption = "Diagnose SIE"
Else
  cbinspDiaSIE.Caption = "Diagnose SIE n.v"
End If
End Sub
 
Public Sub InspDia(Typ As String)
Dim strBookmark As String
strBookmark = "InspDia" & Typ
 
With ActiveDocument
'Text wird verborgen oder gezeigt

 If .Bookmarks.Exists(strBookmark) Then
    If (.CBInsp Or .CBInspGeo) And .FormFields(Typ).CheckBox Then
    .Bookmarks(strBookmark).Range.Font.Hidden = False
     Else
    .Bookmarks(strBookmark).Range.Font.Hidden = True
     End If
  Else
  MsgBox "Die Textmarke '" & strBookmark & "' existiert nicht!"
  End If
End With
End Sub


Der gesamte Code ist ungetestet.

Martin


gesamter Thread:

 RSS-Feed dieser Diskussion

powered by my little forum