• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:保護をかけているシートでマクロが実行できない)

保護をかけているシートでマクロが実行できず、行挿入マクロに関する問題

このQ&Aのポイント
  • 保護をかけているシートで行挿入マクロを実行するとエラーが発生し、「RangeクラスのInsertメソッドが失敗しました」と表示されます。
  • 保護を外すとマクロは実行されますが、保護されたシートではマクロを実行することができません。
  • 質問者はマクロ文が間違っているのか、保護されたシートではマクロを実行できないのかわからない状況で、解決策を求めています。

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

  • ベストアンサー
回答No.1

> シートの保護を外すと実行されます。 > 保護をかけたシートはマクロを実行できないのか、マクロ文が間違っているのか 保護したシートに対して、マクロから変更を行おうとするとエラーになります。 シート保護の機能の方がマクロより強い、と考えて差支えないと思います。マクロの実行自体は出来ますが、シートに対して変更などは出来ません。 (シート保護時に何を規制したか、によります) 保護しているシートに対してマクロで変更を行わせる場合、マクロ内で保護解除してから変更。 終了間際でシート保護する(保護状態を戻す)必要があります。 Sub 行挿入()   'シート保護解除   ActiveSheet.Unprotect   ' 行挿入 Macro   m = Cells(15,5).Formula   Range("A14:G15").Insert copyorigin:=xlFormatFromRightOrBelow   Cells(15,5) = m   'シート保護   ActiveSheet.Protect End Sub パスワード指定して保護している場合は、   ActiveSheet.Unprotect Password:="パスワード"   ActiveSheet.Protect Password:="パスワード" です。詳しくは、ヘルプを参照してみてください。

gge7ahjk1n
質問者

お礼

早速ためしましたら実行できました。大変ありがとうございました

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

その他の回答 (1)

回答No.2

シートの保護を行うと ・行の挿入と削除 ・列の挿入と削除 ・セルの挿入と削除 ・ロックされたセルの内容の変更 ・セルの書式や修飾の変更 が出来なくなります。 保護状態で、これらをマクロで行った場合、マクロは失敗します。 上記の処理をマクロで行う場合は「シートの保護解除」→「マクロ実行」→「シートの保護再設定」を行わないとなりません(具体的な方法は他の回答の通り)

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