This is an election year, so people are showing a lot of interest in politics right now. We thought it would be cool to create a VBA macro that makes an otherwise frustrating and stressful election season a little more fun.
This macro will ask for your birthday and then tell you if you share the same birthday as a United States president.
Here is a screenshot of the macro asking for your birthday:
![ask for input presidential VBA maco](https://www.pctechguide.com/wp-content/uploads/2024/08/Plover-300x300.png)
And here is the output:
Sub CheckPresidentialBirthday()
‘ List of U.S. presidents’ birthdays (MMDD format)
Dim presidentsBirthdays As Collection
Set presidentsBirthdays = New Collection‘ Adding all presidents’ birthdays
presidentsBirthdays.Add “0222”, “George Washington” ‘ George Washington
presidentsBirthdays.Add “1030”, “John Adams” ‘ John Adams
presidentsBirthdays.Add “0413”, “Thomas Jefferson” ‘ Thomas Jefferson
presidentsBirthdays.Add “0711”, “James Madison” ‘ James Madison
presidentsBirthdays.Add “0428”, “James Monroe” ‘ James Monroe
presidentsBirthdays.Add “0711”, “John Quincy Adams” ‘ John Quincy Adams
presidentsBirthdays.Add “0315”, “Andrew Jackson” ‘ Andrew Jackson
presidentsBirthdays.Add “1205”, “Martin Van Buren” ‘ Martin Van Buren
presidentsBirthdays.Add “0318”, “Grover Cleveland” ‘ Grover Cleveland
presidentsBirthdays.Add “1004”, “Rutherford B. Hayes” ‘ Rutherford B. Hayes
presidentsBirthdays.Add “1102”, “James K. Polk” ‘ James K. Polk
presidentsBirthdays.Add “0810”, “Herbert Hoover” ‘ Herbert Hoover
presidentsBirthdays.Add “0820”, “Benjamin Harrison” ‘ Benjamin Harrison
presidentsBirthdays.Add “0304”, “William McKinley” ‘ William McKinley
presidentsBirthdays.Add “0915”, “William Howard Taft” ‘ William Howard Taft
presidentsBirthdays.Add “1027”, “Theodore Roosevelt” ‘ Theodore Roosevelt
presidentsBirthdays.Add “0808”, “Richard Nixon” ‘ Richard Nixon
presidentsBirthdays.Add “0714”, “Gerald Ford” ‘ Gerald Ford
presidentsBirthdays.Add “1001”, “Jimmy Carter” ‘ Jimmy Carter
presidentsBirthdays.Add “0614”, “Donald Trump” ‘ Donald Trump
presidentsBirthdays.Add “1120”, “Joe Biden” ‘ Joe Biden‘ Prompt user for their birthday
Dim userBirthday As String
userBirthday = InputBox(“Please enter your birthday (MM/DD/YYYY):”, “Enter Birthday”)‘ Ensure valid date input
On Error Resume Next
Dim userDate As Date
userDate = DateValue(userBirthday)
On Error GoTo 0If userDate = 0 Then
MsgBox “Invalid date format. Please enter the date in MM/DD/YYYY format.”, vbExclamation, “Invalid Date”
Exit Sub
End If‘ Extract MMDD part from the input
Dim monthDay As String
monthDay = Format(userDate, “MMDD”)‘ Check if the entered MMDD matches any president’s birthday
Dim presidentName As String
Dim matchFound As Boolean
matchFound = FalseOn Error Resume Next
presidentName = presidentsBirthdays(monthDay)
On Error GoTo 0If presidentName <> “” Then
matchFound = True
End If‘ Display result to the user
If matchFound Then
MsgBox “You share your birthday with President ” & presidentName & “!”, vbInformation, “Birthday Match”
Else
MsgBox “You do not share your birthday with any U.S. president in the list.”, vbInformation, “No Match”
End If
End Sub
We hope you enjoy using this macro!