| 
    
     |  | >Cmb開催日1の部分が1〜3まであるのですが、 >すべて同じ処理をさせたいのです。
 >1の部分を2と3に変えてやればいいかと思うのですが、
 >長くなるので、もう少し簡素化できる方法はありますでしょうか?
 >教えてください
 
 この意味が今一不明なのですが?
 
 もし、Cmb開催日1、Cmb開催日2、Cmb開催日3のListが全く同じ(日付を探すシート等が同じ)と
 言う事で有れば、ちんさんの言う事で善いと思いますが?
 
 Listの中身が違うのでこのコードを3つ分書かなければならないと有れば
 整列部分を別のプロシージャに追い出して、
 以下の様に其れを共通に呼び出しても或る程度単純化出来るのでは?
 
 Private Sub UserForm_Initialize()
 
 Dim c As Range
 Dim fAddress As String
 
 With Sheets(Cmbチーム名.Value).Cells
 Set c = .Find(What:="*/*", lookat:=xlPart)
 If Not c Is Nothing Then
 fAddress = c.Address
 Do
 'Listの整列登録を呼び出す
 ListSort c.Value, Cmb開催日1
 Set c = .FindNext(c)
 If c.Address = fAddress Then Exit Do
 Loop
 End If
 End With
 
 End Sub
 
 '下記を同じUserFormのコードモジュールに記述
 Private Sub ListSort(vntDate As Variant, cmbMark As MSForms.ComboBox)
 
 '  List部の整列登録
 
 Dim i As Long
 
 With cmbMark
 For i = 0 To .ListCount - 1
 If Format(vntDate, "mmdd") _
 >= Format(CDate(.List(i, 0)), "mmdd") Then
 Exit For
 End If
 Next i
 If i <= .ListCount - 1 Then
 If Format(vntDate, "m/d") <> .List(i, 0) Then '★不要なら削除
 .AddItem Format(vntDate, "m/d"), i
 End If '★不要なら削除
 Else
 .AddItem Format(vntDate, "m/d")
 End If
 End With
 
 End Sub
 
 |  |