|
▼かぷ さん:
こんばんは。
これで、どうでしょうか?
'====================================================================
Sub チェックA()
Dim dsp_row_flg(1 To 10) As Boolean
' 1: 一般 2:役職A 3:役職B 4:役職C 5:役職D 6:掃除 7:学生 8:社長 9:役員 10:監事
' True:非表示 False:表示
Dim idx As Long
Dim jdx As Long
With Worksheets("氏名一覧")
For idx = 4 To 102
For jdx = LBound(dsp_row_flg()) To UBound(dsp_row_flg())
dsp_row_flg(jdx) = True
Next jdx
Select Case Range("m" & idx).Value
Case "役職A"
dsp_row_flg(1) = False
dsp_row_flg(2) = False
Case "掃除"
dsp_row_flg(1) = False
dsp_row_flg(6) = False
Case "役職B"
dsp_row_flg(1) = False
dsp_row_flg(3) = False
Case "役職C"
dsp_row_flg(1) = False
dsp_row_flg(4) = False
Case "役職D"
dsp_row_flg(1) = False
dsp_row_flg(5) = False
Case "学生"
dsp_row_flg(1) = False
dsp_row_flg(7) = False
Case "社長"
dsp_row_flg(8) = False
Case "役員"
dsp_row_flg(9) = False
Case "監事"
dsp_row_flg(10) = False
Case "事務"
dsp_row_flg(1) = False
End Select
Call シート設定(idx, dsp_row_flg())
Next idx
End With
Sheets("氏名一覧").Select
End Sub
'=============================================================
Sub シート設定(設定行 As Long, 表示有無() As Boolean)
'各シートの指定行を指定により、表示又は、非表示にする
'input : 設定行 表示又は、非表示対象行
' 表示有無() 各シートの表示・非表示の真偽
' 1: 一般 2:役職A 3:役職B 4:役職C 5:役職D 6:掃除 7:学生 8:社長 9:役員 10:監事
' True:非表示 False:表示
Sheets("一般").Rows(設定行).Hidden = 表示有無(1)
Sheets("役職A").Rows(設定行).Hidden = 表示有無(2) '役職A
Sheets("役職B").Rows(設定行).Hidden = 表示有無(3)
Sheets("役職C").Rows(設定行).Hidden = 表示有無(4)
Sheets("役職D").Rows(設定行).Hidden = 表示有無(5)
Sheets("掃除").Rows(設定行).Hidden = 表示有無(6)
Sheets("学生").Rows(設定行).Hidden = 表示有無(7)
With Sheets("役員")
.Rows(設定行).Hidden = 表示有無(8) '社長
.Rows(設定行 + 100).Hidden = 表示有無(9) '役員
.Rows(設定行 + 200).Hidden = 表示有無(10) '監事
End With
End Sub
プロシジャー「チェックA」を実行してみて下さい。
尚、シート「氏名一覧」4行目から、102行目をチェック対象としています。
確認してみて下さい。
|
|