vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: VBA Allgemein   |   VB-Versionen: VBA06.05.15
VBA-Funktionen #3, Funktionsgruppen zur allgemeinen Verwendung

Der Tipp zeigt mehrere Funktionen in Gruppen, die allgemein verwendet werden können.

Autor:   Dietrich HerrmannBewertung:  Views:  8.758 
ohne HomepageSystem:  Win7, Win8, Win10, Win11kein Beispielprojekt 

In diesem Tipp veröffentliche ich mehrere Funktionen allgemeiner Art, die ich in kleinen, später hier gezeigten Projekten verwenden werde. Sie werden ebenfalls wie die Funktionen im Tipp  VBA-Funktionen #1, bestimmte Funktionen zur Array-Verwendung und  VBA-Funktionen #2, Funktionen zur Verwendung an Word-Tabellen im Voraus mitgeteilt (und können natürlich vom Anwender nach eigenen Bedürfnissen modifiziert und variiert werden).

Hier die Funktionen, die durch die Parameter recht selbsterklärend sind.

Eine Gruppe von Funktionen für die Verwendung von Variabeln in Dokumenten:

' Eine Dokument-Variable benutzen
' art: Art der Verwendung (1 speichern, 2 lesen, 3 löschen, 4 alle Variablen löschen)
' vName: der Variablenname
' vVal: der Variablenwert
' Rückgabe: nur beim Lesen den Variablennamen und den Variablenwert
Public Function GetSetDeleteDocVars(art As Integer, _
  Optional vName As String, Optional vVal As Variant)
 
  Dim i As Integer
  With ActiveDocument
    Select Case art
      Case 1  ' speichern
        If GetVarExist(vName) Then
          .Variables(vName).Delete
          .Variables.Add Name:=vName, Value:=vVal
        Else
          .Variables.Add Name:=vName, Value:=vVal
        End If
      Case 2  ' lesen
        If GetVarExist(vName) Then
          GetSetDeleteDocVars = .Variables(vName).Value
        Else
          GetSetDeleteDocVars = ""
        End If
      Case 3  ' eine bestimmte Variable löschen
        If GetVarExist(vName) Then .Variables(vName).Delete
      Case 4  ' alle Variablen löschen
        For i = 1 To .Variables.Count
          .Variables(i).Delete
        Next 
    End Select
  End With
End Function
' Prüfen, ob Variable vorhanden
' nam: der Variablenname
' Rückgabe: wahr oder falsch
Public Function GetVarExist(nam As String) As Boolean
  Dim i As Integer, j As Integer
  With ActiveDocument
    If .Variables.Count = 0 Then
      GetVarExist = False
      Exit Function
    End If
    For i = 1 To .Variables.Count
      If .Variables(i).Name = nam Then j = j + 1
    Next 
    GetVarExist = (j = .Variables.Count)
  End With
End Function
' Alle Document-Variablen ermitteln und ausgeben
' An Stelle der Direktfenster-Ausgabe mit Debug.Print könnten
' die vorhandenen Variablen in einem Listbox-Control gelistet werden
Public Sub getAllVariables()
  Dim i As Integer
  With ActiveDocument
    If .Variables.Count = 0 Then
      Debug.Print .Name & " --> Keine Variablen gespeichert!"
      Exit Sub
    End If
    For i = 1 To .Variables.Count
      Debug.Print .Variables(i).Name & " --> " & .Variables(i).Value
    Next 
  End With
End Sub

Eine Gruppe allgemeiner Funktionen:

' alle Hyperlinks im Dokument beseitigen
Public Sub NoHyperlinks()
  Dim x As Variant
  For Each x In ActiveDocument.Hyperlinks
    selection.WholeStory
    selection.Range.Hyperlinks(1).Delete
  Next x
End Sub
' Cursorposition 
Public Function CusorIsHere() As Long
  selection.Collapse Direction:=wdCollapseStart
  CusorIsHere= selection.Start
End Function
' Richtiges Runden in VBA
' Number: die zu rundende Zahl
' Digits: die Anzahl der Nachkommastellen
' Rückgabe: die gerundete Zahl
Public Function Runden(Number As Double, Digits As Integer) As Double
  Runden = Int(Number * 10 ^ Digits + 0.5) / 10 ^ Digits
End Function
' Extension aus Dok-Name löschen und Leerzeichen im Namen ersetzen
' dn: der Dokumentenname
' replZ: der Ersatzstring für eventuelle Leerzeichen im Namen
' Rückgabe: der geänderte Dok-Name
Public Function delExtension(dn As String, Optional replZ As String) As String
  Dim s() As String
  s = Split(dn, ".")
  If Not IsMissing(replZ) Then
    delExtension = Replace(s(0), " ", replZ)
  Else
    delExtension = s(0)
  End If
End Function

Spezielle Funktion zur Verwendung mit XML:

' Lesen eines bestimmten XMLNodes
' xDoc: das XML-DocElement
' theNodeID: der Name des zu lesenden Node
' Rückgabe: der innnere Text des Node
Public Function readXMLNode(xDoc As MSXML2.DOMDocument, theNodeID As String) As String
  Dim theNode As IXMLDOMNode
  Set theNode = xDoc.DocumentElement.SelectSingleNode(theNodeID)
  If theNode Is Nothing Then
    readXMLNode = ""
  Else
    readXMLNode = theNode.text
  End If
End Function



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.