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.765 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
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. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevZIP40 Pro DLL Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. |
||||||||||||||||
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. |