dポイントプレゼントキャンペーン実施中!

いつもお世話になっています。
Excel2013のvbaで質問です。
例えば、20行目から10行目までを非表示のコマンドボタンを押すと、20行目が非表示、もう一度押すと19行目、18行目・・・非表示としていき、逆に表示のコマンドボタンを押すと、10行目表示、11行目、と1行毎に操作していきたいと思っています。指定範囲の行が全表示されている時は、表示を押しても何も変化せず、その逆で全部非表示の時、非表示ボタンを押しても何も起こらなくて大丈夫です。
さらに、例えば20行目が既に非表示になっている時に、非表示ボタンを1度押せば、19行目が非表示になるようにしていきたいです。

すいませんが、どのようにすればできるでしょうか?
よろしくお願いいたします。

A 回答 (1件)

こんばんは!


一例です。

「非表示」のコマンドボタンのオブジェクト名は「非表示」
「表示」のコマンドボタンのオブジェクト名は「表示」
となっているとします。

Dim i As Long
Private Sub 非表示_Click()
For i = 20 To 10 Step -1
If Rows(i).Hidden = False Then
Rows(i).Hidden = True
Exit For
End If
Next i
End Sub

Private Sub 表示_Click()
For i = 10 To 20
If Rows(i).Hidden = True Then
Rows(i).Hidden = False
Exit For
End If
Next i
End Sub

※ オブジェクト名に手を付けていない場合は
>Private Sub 非表示_Click()

>Private Sub CommandButton1_Click()
のように変更してください。m(_ _)m
    • good
    • 0
この回答へのお礼

自分が作ったものとほぼ同じでした。ただ、自分が作ったものは、Exit Forの前にELSEを入れていたのでうまくいかなかったようです。
どうもありがとうございました。思い通りに動きました。

お礼日時:2015/02/02 22:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!