次の VBA コードは、Excel 2003 ではうまく機能しますが、Excel 2007 ではスタック オーバーフロー エラーが発生します。コードは、ドロップダウン メニューの選択に基づいて特定のセルのロックを解除またはロックする必要があります。Excel 2003 と 2007 の両方でコードを実行できるようにする必要があります。助けてください。
Private Sub Worksheet_Change(ByVal Target As Range)
If [E28] = "NO" Then
ActiveSheet.Unprotect ("PASSWORD")
[K47:K53].Locked = False
[K47:K53].Interior.ColorIndex = 16
[K47:K53].ClearContents
ActiveSheet.Protect ("PASSWORD")
Else
ActiveSheet.Unprotect ("PASSWORD")
[K47:K53].Interior.ColorIndex = 0
'Next line is optional, remove preceding apostrophe if protection should stay on.
ActiveSheet.Protect ("PASSWORD")
End If
End Sub