MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/19 おすすめ情報に 『 【資格取得者速報】 Aさん 「 Microsoft Security, Compliance, and Identity Fundamentals」 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


【VBA】社員表の本日が誕生日の方のお祝いメッセージを表示する
profile-img
投稿者: GNさん
投稿日:2023/07/20 16:32
更新日:2023/07/26 11:10
like-img
分類
技術
テクノロジー
全般
キャリア
運用・保守
投稿内容

こんにちは!


本日は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でお祝いメッセージを送るというようなものも作成したいと思っています!

コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3