Note: The other languages of the website are Google-translated. Back to English

Excelで日付に基づいてセルを保護する方法は?

通常、他の人がセル値を編集または変更するのを防ぐためにワークシートを保護できますが、日付に基づいてセルを保護する必要がある場合もあります。 たとえば、他のセルを保護したいのですが、次のスクリーンショットのように今日の日付のセル値のみを変更できるようにします。この記事では、日付に基づいてセルを保護する方法について説明します。

日付1によるドキュメント保護

今日の日付行を除くすべての行をVBAコードで保護します

日付が経過したすべての行をVBAコードで保護します


矢印青い右バブル 今日の日付行を除くすべての行をVBAコードで保護します

今日の日付に等しい行のみを変更できるようにします。次のコードが役立ちます。次のようにしてください。

1。 日付に基づいてセルを保護するシートタブを右クリックし、を選択します コードを表示 コンテキストメニューから、ポップアウトで アプリケーション向け Microsoft Visual Basic ウィンドウで、次のコードをコピーして空のモジュールに貼り付けてください。

VBAコード:今日の日付行を除くすべての行を保護します:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
    If Range("E" & Selection.Row).Value <> Date Then
        ActiveSheet.Protect Password:="111111"
        MsgBox "Only today's date row can be edited!", vbInformation, "Kutools for Excel"
    ElseIf Range("E" & Selection.Row).Value = Date Then
        ActiveSheet.Unprotect Password:="111111"
        ActiveSheet.EnableSelection = xlNoRestrictions
    End If
End Sub

日付2によるドキュメント保護

注意:上記のコードでは、文字 E 日付が配置されている列ヘッダーです。111111」は、このシートを保護するためのパスワードです。 必要に応じて変更できます。

2。 次に、このコードウィンドウを保存して閉じます。

(1.)今日の日付行を超えて他のセルをクリックすると、セルを編集できないことを通知するプロンプトボックスが表示されます。スクリーンショットを参照してください。

日付3によるドキュメント保護

(2.)クリックして、今日の日付に等しい行を編集すると、正常に変更されます。スクリーンショットを参照してください。

日付4によるドキュメント保護


矢印青い右バブル 日付が経過したすべての行をVBAコードで保護します

日付が過ぎたすべての行を保護する必要がある場合は、今日と将来の日付行のみを変更できるようにしてください。次のVBAコードを適用してください。

1。 日付に基づいてセルを保護するシートタブを右クリックし、を選択します コードを表示 コンテキストメニューから、ポップアウトで アプリケーション向け Microsoft Visual Basic ウィンドウで、次のコードをコピーして空のモジュールに貼り付けてください。

VBAコード:すべての行を保護する日付が過ぎました:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice 20161025
  Dim xRow As Long
  xRow = 2
  ThisWorkbook.ActiveSheet.Unprotect Password:="111111"
  ThisWorkbook.ActiveSheet.Cells.Locked = False
  Do Until IsEmpty(Cells(xRow, 5))
    If Cells(xRow, 5) < Date Then
      Rows(xRow).Locked = True
    End If
    xRow = xRow + 1
  Loop
  ThisWorkbook.ActiveSheet.Protect Password:="111111"
End Sub

日付5によるドキュメント保護

注意:上記のコードでは、番号 5 日付が配置されている列番号です。111111」は、このシートを保護するためのパスワードです。 必要に応じて変更できます。

3。 次に、このコードウィンドウを保存して閉じます。

(1.)セルの日付が経過したをクリックすると、セルを編集できないことを通知するプロンプトボックスが表示されます。スクリーンショットを参照してください。

日付6によるドキュメント保護

(2.)行のセルをクリックして、今日の日付または将来の日付の値を変更しようとすると、正常に変更されます。スクリーンショットを参照してください。

日付7によるドキュメント保護


最高のオフィス生産性ツール

Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます

  • 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。
kteタブ201905

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
コメントを並べ替える
コメント (30)
まだ評価はありません。 最初に評価してください!
このコメントは、サイトのモデレーターによって最小化されました
抜け穴:「コードの表示」オプションを使用すると、他の人がパスワードを見ることができます。
このコメントは、サイトのモデレーターによって最小化されました
すべてのセルにメッセージが表示されているが編集可能であるため、機能していません
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、列のすぐ上の日付で列をロックすることは可能ですか?
このコメントは、サイトのモデレーターによって最小化されました
Private Sub worksheet_Change(ByVal Target As Range)

'申し込む http://youtube.com/excel10tutorial

'寄付してチャンネルをサポートする http://patreon.com/excel10tutorial

Dim col As Range

'ここに正しいシート名を設定します:

With ThisWorkbook.Sheets("AGOSTO-22")

.「ABCDE」の保護を解除

.UsedRange.Columns の列ごとに

col.EntireColumn.Locked = col.Range("A1").Value <> 日付

次の列

.プロテクト「ABCDE」

.EnableSelection = xlNoRestrictions

最後に

End Subの
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、列のすぐ上にある日付に応じて特定のセルをロックすることは可能ですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ルシス、
あなたはあなたの問題をより具体的に与えることができますか? または、問題としてスクリーンショットを添付することもできます。
ありがとうございました!
このコメントは、サイトのモデレーターによって最小化されました
こんにちはスカイヤン

はい、ここにスクリーンショットがあります。 お役に立てれば。
このコメントは、サイトのモデレーターによって最小化されました
ここにある。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ルーシス、
日付が過ぎた列をロックすることを意味し、今日と未来の日の列のみを変更できますか?
このコメントは、サイトのモデレーターによって最小化されました
正しい! どうすればいいですか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ルイス、
A1の日付セルはどうですか? 手動で入力しますか、それとも数式= now()で入力しますか? 数式セルの場合、ロックされた列は日付の変更に応じて変更されます。
お返事を楽しみにしています!
このコメントは、サイトのモデレーターによって最小化されました
こんにちはSkyyangg

はい、セルA1には= now()式があります。

ありがとう!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは.....


今日の日付行を除くすべての行を保護するためのコードを使用しています........



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20161025
If Range( "A"&Selection.Row).Value <> Date Then
ActiveSheet.Protect Password:= "111111"
MsgBox「今日の日付行のみ編集できます!」、vbInformation、「KutoolsforExcel」
ElseIf Range( "E"&Selection.Row).Value = Date Then
ActiveSheet.Unprotect Password:= "111111"
ActiveSheet.EnableSelection = xlNoRestrictions
終了する場合
End Subの


保存してセルをクリックすると、今日の日付行のみを編集できるというメッセージが表示されます。ただし、セルをダブルクリックすると編集できます...plsヘルプ
このコメントは、サイトのモデレーターによって最小化されました
これはうまくいきます。 しかし、行3の日付に基づいて列のロックを解除するように切り替えるにはどうすればよいですか?
このコメントは、サイトのモデレーターによって最小化されました
VBAに比較的慣れていない人として、2行目でxRow = 4である理由を説明していただけませんか?



感謝
このコメントは、サイトのモデレーターによって最小化されました
行番号がないので。 1ヘッダーがあります
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

このコードを実行しているときに、図に示すようなエラーが発生します
また、変更を加えたい場所にExcelのスナップショットを添付しています。

今日と将来の日付のみを含むセルを編集できるように、Excelファイルに従ってどこに変更を加える必要があるかをコードでガイドできますか?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、カラン、
テーブルに結合されたセルがあるため、上記のコードを結合されたセルのテーブルに正しく適用することはできません。
他に良いアイデアがあれば、ここにコメントしてください。 ありがとうございました!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私は同じことをしようとしましたが、「Selection.Row」を「Selection.Columns」に、「E」を「5」(日付がある行番号)に置き換えて、今日の日付列を除くすべての列をVBAコードで保護しましたが、エラー1004を受け取り続けます!

助けてください?

ありがとうございました
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私は同じことをしようとしましたが、「Selection.Row」を「Selection.Columns」に、「E」を「5」(日付がある行番号)に置き換えて、今日の日付列を除くすべての列をVBAコードで保護しましたが、エラー1004を受け取り続けます!

助けてください?

ありがとうございました
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
このコードを必要な列に適用するには、次のVBAコードを使用してください:(注:コードでは、5は行番号に日付が含まれているため、必要に応じて変更してください)。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
範囲としての薄暗いxRg
xRg = Target.Worksheet.Cells(5、Target.Column)を設定します
If xRg <> Date Then
ActiveSheet.Protect Password:= "111111"
MsgBox「今日の日付行のみ編集できます!」、vbInformation、「KutoolsforExcel」
ElseIf xRg.Value = Date Then
ActiveSheet.Unprotect Password:= "111111"
ActiveSheet.EnableSelection = xlNoRestrictions
終了する場合
End Subの

ぜひお試しください。お役に立てば幸いです。
このコメントは、サイトのモデレーターによって最小化されました
ありがとうございました! 申し訳ありませんが、今まで返信がありませんでした。メールに問題がある可能性があります。

機能した! どうもありがとうとは言えません! 本当に感謝しています!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、
それがあなたを助けることができてうれしいです!
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、

今月または/および今週を含まない列を保護するために、これを拡張しようとしています。 「日付」を「月」または「週」に置き換えようとしましたが、機能しませんでした。

ユーザーが今週以外の列を編集または入力できない週シートのサンプルを添付しました。

それについて何かアドバイスはありますか? または、実際の日付を使用してその月の日を反映しますか?
このコメントは、サイトのモデレーターによって最小化されました
あなたの助けをありがとう、どうもありがとう、それは大きな助けです。 そして私の緊張を解決しました。
安全である
よろしくRohitKhanna
このコメントは、サイトのモデレーターによって最小化されました
こんにちは私はXNUMXつの問題に直面しています。ファイルを閉じて同じ日に再度開くと、コードが機能しません。 plsは私が立ち往生するのを助けます
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、rohit、
コードを保持するには、ブックをExcelマクロ対応のブック形式で保存する必要があります。試してみてください。ありがとうございます。
このコメントは、サイトのモデレーターによって最小化されました
こんにちは私はそれをしました、しかし私がセルを押すときメッセージはそれが編集できないことを示します、しかし私がkeyboradを押すとき私はまだセルに書くことができます
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、私は将来の日を保護し、現在と過去の日を編集できるようにしたいと思います。 それ、どうやったら出来るの?
このコメントは、サイトのモデレーターによって最小化されました
こんにちは、ミゲル、未来の日を守るために、以下のコードを適用してください: Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Updateby Extendoffice
xRowを暗くする
xRow = 2
ThisWorkbook.ActiveSheet.Unprotect Password:= "111111"
ThisWorkbook.ActiveSheet.Cells.Locked = False
IsEmpty(Cells(xRow、5))まで実行
If Cells(xRow、5)> Date Then
Rows(xRow).Locked = True
終了する場合
xRow = xRow + 1
ループ
ThisWorkbook.ActiveSheet.Protect Password:= "111111"
終了サブ試してみてください、それがあなたを助けることができることを願っています!
ここにはまだコメントが投稿されていません
あなたのコメントを残す
ゲストとして投稿
×
この投稿を評価:
0   文字
推奨される場所

フォローする

著作権©の2009 - WWW。extendoffice.com。 | | 全著作権所有。 搭載 ExtendOffice。 | サイトマップ
MicrosoftおよびOfficeのロゴは、米国MicrosoftCorporationの米国およびその他の国における商標または登録商標です。
SectigoSSLで保護