| 
    
     |  | ▼かぷ さん: こんばんは。
 これで、どうでしょうか?
 '====================================================================
 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行目をチェック対象としています。
 
 確認してみて下さい。
 
 |  |