QNO.2915892を参考にさせていただき、マクロを設定しました。
正常に作動したのですが、その後シートの一部が変更できないように、ロックをかけることになりました。
するとロックのかかっている状態だと、このコードでは日付が更新されませんでした。
そこで、ロックのかかっていないセルのデータを更新した時だけ、
任意のセルに今日の日付(更新日)が自動で入るようにしたいです。
つまりエクセルを開いただけで、データを修正しなかったら日付は変わらないようにしたいです。
この場合はこのコードに何を足したり、どこを変更したらよいのでしょうか?
もしくは全く別のものになるのでしょうか?
別のものであれば、それを教えていただけると助かります。
コードの意味はほとんどわかっていません。。。
*****以下今使っているコードです********
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Range("B1") = Format(Date, "yyyy/m/d")
Application.EnableEvents = True
End Sub
*********************以上****
どなたかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
#01です
>パスワードなしで保護する方法が私にはわかりません。。。
シートの保護の際、パスワードに何も入力しなければパスワード無しになります
#01で「ただしパスワードがないことが前提」と書いたのは「パスワード指定してあると動かない」という意味ではありません。Unprotectメソッドが実行されるときにパスワード要求が出てきて、ちゃんと保護が解除されるはずです。でも再度保護するときに
ActiveSheet.Protect password:="a" ,DrawingObjects:=True, Contents:=True, Scenarios:=True
のようにマクロ中にパスワードを書いてしまうと、パスワードの意味がなくなるので、そのように書いただけです。
従ってパスワードのあるなしは動作に関係しません。
>シートの保護を一旦解除し、いくつかのセルを修正しましたが、日付が更新されませんでした。
とのことですが、マクロは動いていますか? 別のマクロでEnableEventが発生しないようにされているようなことはないでしょうか。
VBE画面でCtrl+Gでイミディエイトペインを開いて、以下のコマンドを入力しEnterしてみてください。もしEnableEventが原因ならこれで直るかもしれません。
Application.EnableEvents=True
お礼が遅くなり、申し訳ありません。
教えていただいた通り入力しても、できるシートとできないシートがあり、
ややこしくなってしまってそれぞれどの条件の時にどうなったかというのが把握できませんでした。
そこでもう一度元のエクセルファイルをコピーし直し、最初に教えていただいたコードを1シートずつ入力し、
パスワードなしでシートを保護しました。
そして、以下二つのパターンで試してみました。
(1)全てのセルにロックをかけて、修正する度に保護を解除する
(2)一部のセルのみにロックをかけて、ロックされていないセルを修正する
おかげさまで、どちらもうまくいきました。
ありがとうございました!
No.1
- 回答日時:
日付をセルに書き込む前にシートの保護を解除し、書き込み後に保護をかける方法で良ければ以下になります(ただしパスワードがないことが前提)
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
ActiveSheet.Unprotect
Range("B1") = Format(Date, "yyyy/m/d")
ActiveSheet.Protect DrawingObjects:=True, _
Contents:=True, Scenarios:=True
Application.EnableEvents = True
End Sub
ありがとうございます。
現在、シートの保護のためにパスワードを設定しています。
他人が間違って書き換えてしまうと困る部分もあるからです。
知識が足りなくて申し訳ありませんが、むしろパスワードなしで保護する方法が私にはわかりません。。。
シートの保護を一旦解除し、いくつかのセルを修正しましたが、日付が更新されませんでした。
一度でもパスワードを設定してしまうとダメなんでしょうか?
もう少し回答を待ちたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/05/26 17:19
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メールエラー
-
Excelのセルにユーザー名...
-
メールアドレス 上バーの入力...
-
メールのマナー編
-
大学定期試験過去問サイト「過...
-
LINE TCBというところからLINE...
-
メールを返信したら、英語のメ...
-
メールをパスワードつきで送る方法
-
メールアドレスで上付きのハイフン
-
インスタの捨て垢で友達のスト...
-
CDにパスワードをかける
-
携帯電話を解約してもSMSの受信...
-
スタディプラスではアカウント...
-
インスタのアイコンについてるN...
-
X(Twitter)が乗っ取られたかも...
-
----- The following addresses...
-
「@」(アットマーク)の無いメ...
-
email.ne.jpのメールアドレスを...
-
インターネットカフェでCD書き...
-
Skypeのアカウントについて 作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ビーリアルのユーザー名を変え...
-
Excelのセルにユーザー名...
-
メールをパスワードつきで送る方法
-
steam版 apexのログアウト方法...
-
メールエラー
-
LINE TCBというところからLINE...
-
URLとメールアドレス
-
メールアドレスで上付きのハイフン
-
インスタのアイコンについてるN...
-
メールアドレス 上バーの入力...
-
ユニクロやGUのシフト管理アプ...
-
携帯電話を解約してもSMSの受信...
-
メールアドレスから個人を特定...
-
インスタの捨て垢で友達のスト...
-
スタディプラスではアカウント...
-
Instagramからこんなメールがき...
-
YouTubeが毎回ログインしないと...
-
メールを返信したら、英語のメ...
-
解約済みの iPadについて 解約...
-
メールのマナー編
おすすめ情報