前提・実現したいこと
エクセルでA列のセルに入力をすると、B列に入力した日時が表示(A1に入力するとB1に日時が表示)するようにVBAでコードを入れてあります。
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range
For Each r In Target
If r.Column = 1 Then
r.Offset(0, 1).Value = Format(Now, "mm月dd日(aaa)hh:mm")
End If
Next r
End Sub
またA列のセルに入力後、B列に表示されたセルの日時が変更されないように、B列のセルをロックして、シートの保護をしました。
発生している問題・エラーメッセージ
シートの保護をしている状態でA1セルに入力すると、実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーですと表示されます。
該当のソースコード
デバックを表示すると
r.Offset(0, 1).Value = Format(Now, "mm月dd日(aaa)hh:mm")
の部分が黄色に表示されています
試したこと
ネットでVBAとシートの保護の関係をいろいろ調べましたが、どのようにコードを改善すればいいのか分かりません。上記のコードもネットで調べて作成したもので、私自身VBAの知識があさいため、解決策が見つからない状態です。解決策をご教授いただけるとたいへんありがたいです。宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。打ち消し線
回答2件
あなたの回答
tips
プレビュー