こんにちは!
本日はVBAを使って、社員表に書かれた社員情報をもとに誕生日の方をお祝いするメッセージが表示されるプログラムを作成いたしました!
プログラムコードは以下になります。
-------------------------------------------------------------------------------------
Sub birthday_Click()
Call HappyBirthday
#プログラムコードの呼び出し
End Sub
Sub HappyBirthday()
Dim nowday As String: nowday = Format(Date, "mm/dd")
#今日の月日を取得
Dim birthday As String
#社員の生年月日を入れるための変数
Dim name As String
#本日が誕生日の社員の名前をいれるための変数
Dim cnt As Integer: cnt = 0
#本日が誕生日の方がいたかどうかを判定するための変数
Dim intLastRowNum As Integer
#最終行数の数値をいれるための変数
Dim i As Integer
With Sheets("Sheet1")
#今回使用する社員表のあるシートを選択
intLastRowNum = .Cells(Rows.Count, 4).End(xlUp).Row
#↑値の入った最終行の行数を取得
For i = 4 To intLastRowNum
#↑For文を用いて、社員の情報が入ってる列をすべて参照する
最初に値の入っている行が4行目のため、初期値は4
birthday = Format(CDate(.Cells(i, 7).Value), "mm/dd")
#↑社員の生年月日(月日のみ)を取得
.Cells(i(行数),7(生年月日の入力されている列数))
If nowday = birthday Then
#今日の月日と社員の生年月日(月日)を比較
If cnt = 0 Then
#本日の誕生日の人が一人目かどうかを判定
name = Format(.Cells(i, 5)) + "さん"
cnt = cnt + 1
Else
name = name + "、" + Format(Cells(i, 5)) + "さん"
#二人目以降は、前の人の後ろに文字連結する
End If
End If
Next
If cnt <> 0 Then
#本日が誕生日の方がいたかどうか、cntを使って判定
MsgBox name + "、お誕生日おめでとうございます!!"
#誕生日の方をお祝いメッセージと共にMsgBoxに表示
Else
MsgBox "本日が誕生日の方はいません。"
#本日が誕生日の方はいない旨をMsgBoxに表示
End If
End With
End Sub
-------------------------------------------------------------------------------------
上記のプログラムコード実行(下記の[ボタン1]をクリック)すると、本日が誕生日の方がいた場合、下記のようにお祝いメッセージを表示させることができます。
また、近いうちに毎日0:00に日付を取得し、その日が誕生日の方にLINEでお祝いメッセージを送るというようなものも作成したいと思っています!