vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
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:     [ Jetzt bewerten ]Views:  8.759 
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

Dieser Tipp wurde bereits 8.759 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel