Nullen vor Zahl anfügen

Manchmal macht es Sinn vor eine Zahl mehrere Nullen (000…) zu stellen, um z.B. die Lesbarkeit zu verbessern, oder alle Zahlen in einem Format zu haben.

In Visual Basic oder Visual Basic for Applications kann hierfür die Funktion “Format” verwendet werden. Allerdings muss eine Typenkonvertierung von Zahl zu Text vorgenommen werden, da z.B. “00242″ keine normale Zahl ist und die Nullen weggelassen bzw. nicht angezeigt werden.

Meine VBA-Funktion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Function NullenVorZahlAnfuegen(intZahl As Integer, intStellen As Integer) As String
    Dim intI As Integer
    Dim strTmp As String
 
    If Len(intZahl) < intStellen Then
        For intI = 1 To intStellen
            strTmp = strTmp & "0"
        Next intI
 
        NullenVorZahlAnfuegen = Format(intZahl, strTmp)
    Else
        NullenVorZahlAnfuegen = ""
    End If
End Function

Ziemlich wahrscheinlich gibt es noch schnellere oder kürzere Wege das zu tun, aber meine funktioniert auch! ;-)

Alle nicht-privaten Termine auflisten

Gibt es Termine in meinem Kalender, die nicht als “privat” markiert sind?
Die folgende Prozedur gibt die nicht-privaten Termine aus dem lokalen Outlookordner aus.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub NichtPrivateTermine()
    Dim objTerminordner As MAPIFolder
    Dim objTermin As AppointmentItem
 
    ' Objekt auf Terminordner referenzieren
    Set objTerminordner = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar)
 
    ' Alle Termine durchlaufen
    For Each objTermin In objTerminordner.Items
        ' Prüfen, on privat
        If objTermin.Sensitivity = olNormal Then
            Debug.Print objTermin.Subject
        End If
    Next
End Sub

Kontakte ohne Geburtsdatum anzeigen

Wer sein Adressbuch aktualisiert, kann mit der folgenden Prozedur herausfinden, welche seiner Kontakte im Outlook kein Geburtsdatum gesetzt haben.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub KontakteOhneGebdatum()
    Dim objKontaktordner As MAPIFolder
    Dim objKontakt As ContactItem
 
    'Auf Kontaktordner verweisen
    Set objKontaktordner = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    'Alle Kontakte durchlaufen
    For Each objKontakt In objKontaktordner.Items
        ' Prüfen, ob GebDatum vorhanden
        If objKontakt.Birthday = "01.01.4501" Then
            ' Name ausgeben
            Debug.Print objKontakt.FirstName & " " & objKontakt.LastName
        End If
    Next
End Sub

Eigenschaften von Outlook-Objekten

Wer ab und zu mit Visual Basic for Applications und den Outlookobjekten hantiert, der sucht hin und wieder auch die passende Eigenschaft eines Objektes.
Bei Fragestellungen wie “wie hieß noch mal die Property für die private Straße!?” helfen die folgenden drei Links, die eine Übersicht geben, welche es gibt und was diese bedeuten.
Bloch-Online.net, MSExchangeFaq.de, Microsoft MSDN

Alle nicht-privaten Kontakte auflisten

Gibt es Kontakte in meinem Adressbuch, die nicht als “privat” markiert sind?
Die folgende Prozedur gibt die nicht-privaten Kontakte aus dem lokalen Outlookordner aus.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub NichtPrivateKontakte()
    Dim objKontaktordner As MAPIFolder
    Dim objKontakt As ContactItem
 
    'Auf Kontaktordner verweisen
    Set objKontaktordner = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    'Alle Kontakte durchlaufen
    For Each objKontakt In objKontaktordner.Items
	' Prüfen, ob privat
        If objKontakt.Sensitivity = olNormal Then
            ' Name ausgeben
            Debug.Print objKontakt.Subject
        End If
    Next
End Sub