アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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
---------------------------------------------

保護を外して処理、処理後保護でいいのでは?
以上です。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/03/03 20:42

シートを保護するときに、このシートのすべてのユーザーに許可する操作として「行の書式設定」にチェックをいれておくと、このマクロを実行することができます。

「行の書式設定」が許可されていない場合は、1行目に限らずすべての行の高さが変更できません。
    • good
    • 0

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

    • good
    • 0

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