Option Explicit '月別給与賞与支払一覧表 Private Sub GetYear() '過去データの年を取得しリストボックスに格納 Dim objws As Worksheet 'Sheet5:給与賞与情報 Dim intS_Year As Integer '年を保持する一時変数 Dim intTemp As Integer '年を比較する一時変数 Dim lngRow As Long 'データ数 Dim i As Long 'カウンター Set objws = Workbooks(gstrName).Worksheets("Sheet5") lngRow = objws.Cells(65536, 1).End(xlUp).Row Me.lstDate.Clear intS_Year = Year(CDate(objws.Cells(1, 4).Value)) Me.lstDate.AddItem intS_Year For i = 1 To lngRow intTemp = Year(CDate(objws.Cells(i, 4).Value)) If intTemp <> intS_Year Then intS_Year = intTemp Me.lstDate.AddItem intS_Year End If Next Set objws = Nothing End Sub Private Sub cmdEND_Click() 'キャンセルボタン mdlMain.gReForm = False Unload Me End Sub Private Sub cmdOK_Click() 'OKボタン mdlMain.gYear = CInt(Me.lstDate.List(Me.lstDate.ListIndex, 0)) mdlMain.gReForm = True Unload Me End Sub Private Sub lstDate_Click() 'リストボックスを選択したとき If Me.cmdOK.Enabled = False Then Me.cmdOK.Enabled = True End Sub Private Sub UserForm_Initialize() 'フォームが表示されたとき Call GetYear If Me.cmdOK.Enabled = True Then Me.cmdOK.Enabled = False End Sub