Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11168 / 76735 ←次へ | 前へ→

【71107】Re:コンボボックスのリストを降順する
発言  Hirofumi  - 12/1/29(日) 7:38 -

引用なし
パスワード
   >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

7 hits

【71076】コンボボックスのリストを降順する レッズ命 12/1/27(金) 21:46 質問
【71077】Re:コンボボックスのリストを降順する ちん 12/1/27(金) 23:04 発言
【71078】Re:コンボボックスのリストを降順する Hirofumi 12/1/27(金) 23:23 発言
【71079】Re:コンボボックスのリストを降順する Hirofumi 12/1/27(金) 23:40 発言
【71080】Re:コンボボックスのリストを降順する レッズ命 12/1/27(金) 23:40 お礼
【71105】Re:コンボボックスのリストを降順する レッズ命 12/1/28(土) 23:54 質問
【71106】Re:コンボボックスのリストを降順する ちん 12/1/29(日) 4:54 発言
【71108】Re:コンボボックスのリストを降順する レッズ命 12/1/29(日) 16:30 お礼
【71107】Re:コンボボックスのリストを降順する Hirofumi 12/1/29(日) 7:38 発言

11168 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free