|
KK さん、こんばんわ。
>[男性]ボタンにSub men() 〜 End Subを登録し、[男性]ボタンをクリックしたときに、[女性]列と行が非表示、[男性]列と行が表示されるようにしているので、
>Sub men()
>(処理)
>End Sub
>の中で
>targetGen = "女性"
>と指定していたのです。
targetGen以外は同じ内容みたいなので、Subの引数を使ってメイン動作をSub内で分岐すれば、実行部分は一つにまとめられそうですね。
こんな風に。
Sub Men()
RC_HIDE "女性" '男性を表示
End Sub
Sub Women()
RC_HIDE "男性" '女性を表示
End Sub
Sub AllSHOW()
RC_HIDE " " 'どちらも表示(半角スペースが入っていたらそこが消えますが)
End Sub
Sub RC_HIDE(targetGen as String)
Dim fCell As Range, ICell As Range
Dim fstAdr As String
'
If targetGen <> "" Then '念のため
<<<<<<以下省略>>>>>>
End Sub
>最後の1文
>>Parent(親オブジェクト参照)をつけたのは、UsedRange.Columns(3)がかならずしもC列になるとは限らないからです。
>必ずしもC列にならないときというのはどういう時を指すのでしょうか?
セル範囲の左上のセルに対して1列・・・とカウントされていくので、UsedRangeにA列を含まない可能性があるから、C列とは限らないのです。
Sub test()
'作業用シートは新しいブックで
Set ws = Application.Workbooks.Add.Worksheets(1)
With ws
.Range("B2:B3").Value = "■" '適当
With .UsedRange
MsgBox "UsedRange.Columns(3):" & .Columns(3).Address(False, False), _
vbInformation, _
"UsedRange:" & .Address(False, False)
End With
'作業用シート開放
With .Parent
.Saved = True
.Close False
End With
End With
Set ws = Nothing
End Sub
これを実行してみてください。
|
|