ヒント:他の言語はGoogle翻訳されています。 訪問することができます English このリンクのバージョン。
ログイン
x
or
x
x
お申し込み
x

or

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

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

1の日付で保護する

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

日付がVBAコードで渡されたすべての行を保護する

OfficeタブOfficeでタブ付き編集とブラウジングを有効にし、作業をより簡単にします...
Kutools for Excel-最高のOffice生産性向上ツールはExcelの問題のほとんどを解決します
  • 何でも再利用: 最も使用されている式や複雑な式、チャート、その他をお気に入りに追加し、将来的にすぐに再利用できます。
  • 20以上のテキスト機能: テキスト文字列から数値を抽出します。 テキストの一部を抽出または削除します。 数字と通貨を英語の単語に変換...
  • マージツール:複数のワークブックとシートを1つに; データを失うことなく複数のセル/行/列を結合します。 重複する行と合計をマージ...
  • 分割ツール:値に基づいてデータを複数のシートに分割します。 1つのワークブックから複数のExcel、PDF、またはCSVファイル。 1列から複数列...
  • 貼り付けスキップ 非表示/フィルターされた行。 カウントアンドサム 背景色別; メーリングリストを作成し、 セルの価値でメールを送信する...
  • スーパーフィルター: 高度なフィルタースキームを作成し、任意のシートに適用します。 ソート 週、日、頻度などにより; フィルタ 太字、式、コメントで...
  • 300の強力な機能以上。 Office 2007-2019および365で動作します。 すべての言語をサポートしています。 会社で簡単に展開できます。 フル機能の60日間の無料トライアル。

矢印青い右の泡 今日の日付行を除くすべての行をVBAコードで保護する

今日の日付に等しい行だけを変更できるようにするには、次のコードを参考にしてください。

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

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 次のコードをコピーして空白のModuleに貼り付けてください:

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-最高のOffice生産性向上ツールにより、生産性が80%向上

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

OfficeタブはOfficeにタブ付きインターフェイスを提供し、作業をより簡単にします

  • Word、Excel、PowerPointでタブ付き編集と読み取りを有効にする、出版社、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を50%向上させ、毎日数百回のマウスクリックを削減します。
オフィシタブ底
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Karan · 2 months ago
    Hi,

    while running this code I am getting an error as shown in the figure
    Also i am attaching a snapshot my excel where i want to make changes..

    Can u guide in my code where should i make changes according to my excel file so that cells that contain only todays & future date can be editied ???
    • To post as a guest, your comment is unpublished.
      skyyang · 1 months ago
      Hello, Karan,
      Because there are merged cells in your table, the above code can not be applied correctly in merged cells table.
      If you have any other good ideas, please comment here. Thank you!
  • To post as a guest, your comment is unpublished.
    Niall · 8 months ago
    As someone who is relatively new to VBA, would you mind explaining why xRow = 2 in Line 4?



    Thanks
    • To post as a guest, your comment is unpublished.
      Piotr · 8 months ago
      because in row no. 1 you have header
  • To post as a guest, your comment is unpublished.
    Bobby · 1 years ago
    This works great. but how can I switch it to unlock a column based on dates in row 3?
  • To post as a guest, your comment is unpublished.
    TAHER KANPURWALA · 1 years ago
    Hello.....


    I am using the code for Protect all rows except today’s date row........



    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Updateby Extendoffice 20161025
    If Range("A" & 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


    After i save i and click on cell i get message only today's date row can be edited....but if i double click the cell the i can edit...pls help
  • To post as a guest, your comment is unpublished.
    LUIS GARCIA · 1 years ago
    hi is it possible to lock certain cells depending on the date that is directly above them in a column?
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hi, Lusis,
      Can you give your problem more specifically? Or you can attach a screenshot as your problem.
      Thank you!
  • To post as a guest, your comment is unpublished.
    Lmg · 1 years ago
    Hi is it possible to lock columns by the date directly above the columns?
  • To post as a guest, your comment is unpublished.
    Hitesh · 2 years ago
    Loophole: Password can be seen by other person by using "View Code" option.