|
特定のシートを明示的に除外する様にコードを変更します
「Function MakeSheetsIndex」プロシージャを以下の様に変更して下さい
Private Function MakeSheetsIndex(dicSheets As Object, _
lngSheetNo As Long) As Boolean
' B1セルに日付の有るシートのIndexを作成
Dim i As Long
Dim j As Long '★この行追加
Dim vntDate As Variant
Dim vntExclude As Variant '★この行追加
Dim blnExclude As Boolean '★この行追加
'除外するシート名を配列に(""で括り「,」で区切って羅列)
vntExclude = Array("集計表", "Sheet32") '★この行追加
'ワークシートコレクションに就いて
With Worksheets
'コレクションの先頭から終りまで繰り返し
For i = 1 To .Count
'除外フラグをFalseに
blnExclude = False '★この行追加
'除外するシート名の先頭〜最終まで繰り返し
For j = 0 To UBound(vntExclude) '★この行追加
'もしi番目のシート名が除外するシート名と一致するなら
If .Item(i).Name = vntExclude(j) Then '★この行追加
''除外フラグをTrueの
blnExclude = True '★この行追加
'Forを抜ける
Exit For '★この行追加
End If '★この行追加
Next j '★この行追加
'除外するシートで無い場合
If Not blnExclude Then '★この行追加
'シートiのB1の値を取得
vntDate = .Item(i).Cells(1, "E").Value
'もし、日付と認められるなら
If IsDate(vntDate) Then
'シートのIndexにこの日付が有る場合
If dicSheets.Exists(vntDate) Then
Beep
MsgBox "同一の日付が有ります"
Exit Function
'日付が無い場合
Else
'Indexにこの日付とシート番号を追加
dicSheets.Add vntDate, i
'最初にIndexに追加されたシート番号を保存
If lngSheetNo = 0 Then
lngSheetNo = i
End If
End If
End If '★この行追加
End If
Next i
End With
MakeSheetsIndex = True
End Function
明示的に除外するシート名を、以下の部分で指定して下さい
尚、シート名は""で括り「,」で区切って羅列して下さい
'除外するシート名を配列に(""で括り「,」で区切って羅列)
vntExclude = Array("集計表", "Sheet32") '★この行追加
|
|