プロが教えるわが家の防犯対策術!

オートフィルタでフィルタ後、表示されない行にあるボタンを消したいのですが表示されていないセルの判定方法がわかりません。
下のマクロではエラーが出ます。
よろしくお願いします。

If ActiveSheet.Range("a10").Visible = False Then
ボタンを消すマクロ
End If

A 回答 (2件)

If ActiveSheet.Range("a10").EntireRow.Hidden = True Then


こうではないでしょうか?
    • good
    • 3
この回答へのお礼

ありがとうございます。
できました!!
又機会がありましたらよろしくお願いします。

お礼日時:2007/11/14 07:17

こんばんは。



私には、質問が良く理解できません。

オートフィルタでフィルタリング後に、表示されない行にある(コマンド)ボタンを消すということは、どういうことなのか理解できません。

おそらく、
ボタンのオブジェクトの書式が、

 セルにあわせて移動やサイズ変更をする

にチェックが入っていることだと思います。

しかし、こういう状態がデフォルトで成立するとしたら、Excel 2002 でしょうか?
通常は、ありえませんね。通常の設定では、ボタンは、行と連動していませんから、非表示ということはありません。

行が非表示だから、その上で、ボタンが隠れた状態のものを、以下のようにボタンを削除することでしょうか?


Sub Test1()
'フォームのボタン
With ActiveSheet
 If .AutoFilterMode Then
   If .Buttons(1).TopLeftCell.Rows.Hidden Then
    .Buttons(1).Delete
   End If
 End If
End With
End Sub

Sub Test2()
'コントロールツールのボタン
With ActiveSheet
 If .AutoFilterMode Then
   If .CommandButton1.TopLeftCell.Rows.Hidden Then
    .CommandButton1.Cut
   End If
 End If
End With
End Sub

なお、ボタンはワークシート上に、それぞれ1個の場合です。2個目は、名称やインデックスが変わりますから、このままのマクロでは使えません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
No1さんの回答で解決しました。質問の仕方が悪く申し訳ありません。
エクセル2000で作成中です。意図は行ごとに行に対するボタンがあるので行が表示されない場合はボタンが必要なくなります。消すというのはDELETEではなくHIDDENです。
わざわざプログラムを書いていただきありがとうございました。
又機会がありましたらよろしくお願いします。

お礼日時:2007/11/14 07:21

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