• ベストアンサー

エクセル 行の表示非表示のマクロでエラーが

たとえば     列A  行1 2300  行2 1500  行3  500  行4  300 となっていて、ボタンを押すたびに行2~行4の表示非表示を切り替えるマクロを以下のように設定しました。   Sub ()   With Rows("2:4")   .Hidden = Not .Hidden   End With   End Sub そして、A1のセルを保護しシートを保護したところマクロにエラーが出て使えなくなりました。 解決方法はあるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんばんは。 EXCELのバージョンが書いてないのであれですが。 シートの保護はマクロ(VBA)で掛けてるのですよね。 なら、保護するときに、 ActiveSheet.Protect userinterfaceonly:=True このように、UserInterfaceOnlyをTrueにします。 こうするとOKです。 または、既に回答にあるように ------------------------------------------ Sub test()  ActiveSheet.Unprotect   With Rows("2:4")    .Hidden = Not .Hidden   End With  ActiveSheet.Protect UserInterfaceOnly:=True End Sub --------------------------------------------- 保護を外して処理、処理後保護でいいのでは? 以上です。

noname#81542
質問者

お礼

ありがとうございました。 回答のとおりに入力したらエラーが出ずに表示非表示が行えました。 今後質問する際はEXCELのバージョンを書くように気をつけます。 ちなみにOfficeXpです。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.2

シートを保護するときに、このシートのすべてのユーザーに許可する操作として「行の書式設定」にチェックをいれておくと、このマクロを実行することができます。「行の書式設定」が許可されていない場合は、1行目に限らずすべての行の高さが変更できません。

すると、全ての回答が全文表示されます。
  • hogehage
  • ベストアンサー率50% (54/107)
回答No.1

シート保護を解除すれば、問題ないと思いますが、そういうことではないのですか?

すると、全ての回答が全文表示されます。

関連するQ&A