|
ひげくま さん:
こんばんは。
>1行目は普通の高さで、2〜3行目の高さを0にした状態で、
>1〜3行目を隠したり表示させたりしたいのですが、
>RowHeight を 0 にして、Hidden を True にしたあとに、
>Hidden を False にすると、RowHeight が 0 のままではなく、
>0 にする前の高さに戻ってしまいます。
>
>Rows("2:3").RowHeight = 0
MsgBox Rows("2:3").Hidden
>Rows("1:3").Hidden = True
>Rows("1:3").Hidden = False
これで確認すると、既にTrueが表示されていますからねえ。
よって、どこかに覚えておかないとなりませんね!!
あとは、どこに置くかですが・・・。
Sub test()
Call set_rowheight_0(Rows("2:3"))
Call set_hidden(Rows("1:3"), True)
Call set_hidden(Rows("1:3"), False)
End Sub
'===============================================
Sub set_rowheight_0(ByVal rng As Range)
Dim crng As Range
For Each crng In rng.Rows
crng.ID = "0"
Next
rng.RowHeight = 0
End Sub
'===============================================
Sub set_hidden(ByVal rng As Range, ByVal myvalue As Boolean)
Dim crng As Range
rng.Rows.Hidden = myvalue
If myvalue = False Then
For Each crng In rng.Rows
If crng.ID = "0" Then
crng.RowHeight = Val(crng.ID)
End If
Next
End If
End Sub
'===============================================
Sub set_id_clear(ByVal rng As Range)
Dim crng As Range
For Each crng In rng.Rows
crng.ID = ""
Next
End Sub
Excel2000以上なら、IDプロパティを借りて上記の方法では?
|
|