|
KK さん、こんにちわ。
>組み合わせると、以下のようになったのですが、修正すべき箇所、改善すべき箇所がございましたら、
>アドバイスお願いします。
MergeAreaを使っているところをみると、結合セルがあるみたいですね。
どんな風に結合しているかわからないので、ちょっと検索方法を変えました。
同じモノをさがしているようなので、統合してあります。
Sub men()
Dim targetGen As String
Dim fCell As Range, ICell As Range
Dim fstAdr As String
'女性か男性かを指定
targetGen = "男性" 'menなのに女性?
'
If targetGen <> "" Then '念のため
With ActiveSheet
.Rows.Hidden = False '全体表示
.Columns.Hidden = False'全体表示
'使用範囲が対象です
With .UsedRange
Set fCell = .Find(what:=targetGen, LookAt:=xlWhole)
If Not fCell Is Nothing Then
fstAdr = fCell.Address
Do
Set ICell = Application.Intersect(fCell, .Parent.Columns(3))
If Not ICell Is Nothing Then
'C列がらみだったら行非表示
fCell.MergeArea.EntireRow.Hidden = True
Else
Set ICell = Application.Intersect(fCell, .Parent.Rows(1))
If Not ICell Is Nothing Then
'1行目がらみだったら列非表示
fCell.MergeArea.EntireColumn.Hidden = True
End If
End If
'次検索
Set fCell = .FindNext(fCell)
Loop While Not fCell Is Nothing And fCell.Address <> fstAdr
End If
End With
End With
End If
End Sub
Parent(親オブジェクト参照)をつけたのは、UsedRange.Columns(3)がかならずしもC列になるとは限らないからです。
|
|