Sub HeaderFooterObject() MyFooterText = "Random Document ID: " + test() For Each Section In ActiveDocument.Sections Section.Footers(wdHeaderFooterPrimary).Range.Text = MyFooterText Next End Sub Private Function test() As String Dim s As String * 8 'fixed length string with 8 characters Dim n As Integer Dim ch As Integer 'the character For n = 1 To Len(s) 'don't hardcode the length twice Do ch = Rnd() * 127 'This could be more efficient. '48 is '0', 57 is '9', 65 is 'A', 90 is 'Z', 97 is 'a', 122 is 'z'. Loop While ch < 48 Or ch > 57 And ch < 65 Or ch > 90 And ch < 97 Or ch > 122 Mid(s, n, 1) = Chr(ch) 'bit more efficient than concatenation Next test = s End Function