エクセルVBAについての質問です。 最近VBAを始めた初心者です。産休育休者の社会保険料と給与の管理についてコードを書いてみたのですが、書いていくうちに全体像が掴めなくなりました。(対象者を正しく拾えていないかも) ここをこうした方が可読性が上がる、この部分を部品化した方が良い、などなんでも良いのでアドバイスいただきたいです。 尚、文字数の関係で別の質問にて続きをあげさせていただきます。お手数ですがよろしくお願いします。 固定条件 ・産前終期の次の日が産後 ・産後終期の次の日が育休始期 ・産前の開始日は固定 ・産後の日付間は56日固定 ・月末時点で産前産後育休に入っている人は処理要として塗りつぶし ・先月に日割計算をした職員は処理要として塗りつぶし 非固定条件 ・産前の終期 ・産後の始期 Option Explicit Sub ikukyu() Application.ScreenUpdating = False Dim i As Long Dim Tyosei As Currency Dim 当月 Dim 月初 As Date, 月末 As Date, 前月月初 As Date, 前月月末 As Date 月初 = Range("J1") 月末 = Range("K1") 当月 = Month(月初) 前月月初 = DateSerial(Year(月初), Month(月初) - 1, 1) '前月初日 前月月末 = DateSerial(Year(月末), Month(月末), 0) '前月末日 '塗りつぶしをクリア Sheets("調整").Cells.Interior.ColorIndex = xlNone For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row '産前産後育休の始期、終期を宣言 If Cells(i, SanIkush.産前終期) >= 月初 And Cells(i, SanIkush.産前始期) <= 月末 Then Range(Cells(i, SanIkush.産前始期), Cells(i, SanIkush.産後終期)).Interior.Color = RGB(255, 182, 193) End If If Cells(i, SanIkush.産後終期).Interior.ColorIndex = xlNone Then If 当月 >= Month(Cells(i, SanIkush.産後始期)) And 当月 < Month(Cells(i, SanIkush.産後終期)) Then Range(Cells(i, SanIkush.産後始期), Cells(i, SanIkush.産後終期)).Interior.Color = RGB(255, 182, 193) End If If Cells(i, SanIkush.産後終期) = 月末 Then Range(Cells(i, SanIkush.産後始期), Cells(i, SanIkush.産後終期)).Interior.Color = RGB(255, 182, 193) End If End If '出産予定日が前月前々月で産後の報告がない部分に”出産日確認を入力” If Cells(i, SanIkush.産後始期) = "" And Month(Cells(i, SanIkush.産前終期)) < 当月 Then Range(Cells(i, SanIkush.産後始期), Cells(i, SanIkush.産後終期)).Interior.Color = vbRed Cells(i, SanIkush.産後始期) = "出産日確認" End If
Excel