|
Ramo さん、こんにちわ。
>このリストボックスに入るシートを指定して出すことは出来るのでしょうか。
>Sheet1〜10まで表示されているシートをSheet1〜6までを表示
>出来ないでしょうか。
判定の条件がわからないので、チェックボックスリストに表示するシートをリストに持っておいて分岐しています。
Private Sub UserForm_Activate()
Dim II As Integer, shtl As Variant, JJ As Integer
'シートのリスト
shtl = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6")
'アクティブなブックが対象
With Application.ActiveWorkbook
ReDim Ldat(1 To .Worksheets.Count) As String
For Each ws In .Worksheets
For JJ = LBound(shtl) To UBound(shtl)
'一致した名前のシートのみリストに追加
If ws.Name = shtl(JJ) Then
II = II + 1: Ldat(II) = ws.Name
Exit For
End If
Next
Next
'
If II > 0 And II < .Worksheets.Count Then
ReDim Preserve Ldat(1 To II) As String
End If
End With
'
With Me.ListBox1
.Clear '念のためクリア
.ListStyle = fmListStyleOption 'オプションボタン又はチェックボックス
.MultiSelect = fmMultiSelectMulti '複数選択可能
If II = 0 Then
MsgBox "リストを確認", vbExclamation, "該当シートなし"
Else
'リストにデータ(シート名一覧)
.List = Ldat()
End If
End With
Erase Ldat
End Sub
|
|