重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

いつもお世話になっております
やりたいこと
下記のコードはマクロと手入力で作成したものです。
ActiveSheet.Protect , AllowDeletingRows:=True
をいれて行を削除しようとしましたら、
添付ファイルのようになります。
削除できないのです
当たり前かもしれませんが、
削除することは可能でしょうか

Sub mc01()
ActiveSheet.Unprotect
Range("B5:B20").FormulaR1C1 = "=IF(RC[1]<>"""",ROW()-1,"""")"
Cells.Locked = False
Columns(2).SpecialCells(xlCellTypeFormulas).Locked = True
Range("B:B").FormulaHidden = True
ActiveSheet.Protect , AllowDeletingRows:=True
End Sub

「セルの保護について」の質問画像

質問者からの補足コメント

  • 質問の仕方がまちがっていることがわかりました。
    セルを保護すると行を削除できない
    といこともわかりました

    式を削除することができないようすれば

    いいんですね

      補足日時:2022/02/09 11:34
  • うーん・・・

    まえにどこかでみました。
    数式のはいっている箇所を削除しても
    数式が消えない方法

    わかればおしえてくれませんでしょうか
    たしか undo

      補足日時:2022/02/09 11:36

A 回答 (2件)

こんにちは



>当たり前かもしれませんが、
>削除することは可能でしょうか
当然のことですが、ロックされているセルを削除することはできません。
ロックがかかっていない行であれば、そのままの状態でも削除可能です。

ロックされているセルを削除したければ、アラートに示されている通り、保護を解除してから削除すれば可能です。
あるいは、そもそもロックをしないでおくかでしょう。


前回のご質問に追加回答しようとしたら締め切られてしまいましたが、「式を表示したくない」というのが、ひょっとすると「関数式が生きていなくてもよい」という意味と解釈してもよいのなら、シートの保護などを利用しなくても以下で可能です。
(式の内容を計算するだけのマクロになりますので、後からC列の値を変更してもB列の値は変わりません)

Range("B5:B20").FormulaLocal = "IF(C5<>"""",ROW()-1,"""")"
Range("B5:B20").Value = Range("B5:B20").Value
    • good
    • 1
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/09 11:51

おはようございます。



セルが保護されているから、ですよね???
手動でしたら、セルの保護を解除すれば、削除ができると思いますが。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/09 11:51

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