Note: The other languages of the website are Google-translated. Back to English
ログイン  \/ 
x
or
x
今すぐ登録  \/ 
x

or

Excelでのデータ入力または入力後にセルをロックまたは保護するにはどうすればよいですか?

ワークシートがあり、特定の範囲の空白セルのみにデータ入力が必要であり、データの入力が終了した後、再度変更されないようにセルを自動的にロックする必要があるとします。 それを達成するためにどのようにできますか? この記事はあなたを助けることができます。

データ入力またはVBAコードでの入力後にセルをロックまたは保護する


データ入力またはVBAコードでの入力後にセルをロックまたは保護する

たとえば、空白セルの特定の範囲はA1:F8です。 Excelにデータを入力した後、これらのセルをロックするには、次のようにしてください。

1.最初にこの範囲のロックを解除し、セルを選択して右クリックしてから、 セルの書式設定 右クリックメニュー、および セルの書式設定 ダイアログボックス、チェックを外します ロック 下のボックス 保護 タブをクリックし、最後に OK ボタン。 スクリーンショットを参照してください:

2。 クリック レビュー > 保護シート。 そして、このワークシートを保護するためのパスワードを指定します。

3.シートタブを右クリックして、を選択します コードを表示 右クリックメニューから。 次に、以下のVBAコードをコピーしてコードウィンドウに貼り付けます。 スクリーンショットを参照してください:

VBAコード:データの入力または入力後にセルをロックまたは保護します

Dim mRg As Range
Dim mStr As String

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
    mStr = mRg.Value
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xRg As Range
    On Error Resume Next
    Set xRg = Intersect(Range("A1:F8"), Target)
    If xRg Is Nothing Then Exit Sub
    Target.Worksheet.Unprotect Password:="123"
    If xRg.Value <> mStr Then xRg.Locked = True
    Target.Worksheet.Protect Password:="123" 
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("A1:F8"), Target) Is Nothing Then
    Set mRg = Target.Item(1)
     mStr = mRg.Value
End If
End Sub

ノート:コードでは、「A1:F8」はデータを入力するために必要な範囲です。 「123」は、この保護されたワークシートのパスワードです。 必要に応じて変更してください。

4。 押す 他の + Q キーを同時に閉じて Microsoft Visual Basic for Applications 窓。

範囲A1:F8のセルへのデータの入力が完了すると、それらは自動的にロックされます。 また、この範囲のセルコンテンツを変更しようとすると、プロンプトダイアログボックスが表示されます。 スクリーンショットを参照してください:


関連記事:


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

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

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

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

  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性が50%向上し、毎日何百ものマウスクリックが減ります。
officetab下部
Say something here...
symbols left.
You are guest
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.
    crystal · 3 years ago
    @Palash Somani Good Day,
    At first, you need to set specified cells to Unlocked for editig, and then protect the worksheet. And finally apply the VBA script.
  • To post as a guest, your comment is unpublished.
    Palash Somani · 3 years ago
    cells are not even editable...what went wrong don't understand pls help
  • To post as a guest, your comment is unpublished.
    crystal · 3 years ago
    @Akshay Good Day,
    Method in this post can also help you to solve this problem.
  • To post as a guest, your comment is unpublished.
    Akshay · 3 years ago
    Hi,
    Sir i want to lock after one time input data !
    Like i am following one customer and write status , then any more employee cant edit or modify that !
  • To post as a guest, your comment is unpublished.
    crystal · 3 years ago
    @pradip Dear pradip,
    Which Office version do you use?
  • To post as a guest, your comment is unpublished.
    pradip · 3 years ago
    @crystal No, it locks the whole range at once after a data input into a cell in the range
  • To post as a guest, your comment is unpublished.
    crystal · 3 years ago
    @Subhash Deb Dear Subhash,
    After using the code, only the edited cells are locked in the specified range. And you can still enter data into the empty cells in the specified range as you need. After fill in the blank cell, it will be locked automatically.
  • To post as a guest, your comment is unpublished.
    crystal · 3 years ago
    @Fair Dear Fair,
    Sorry can't solve this problem.
  • To post as a guest, your comment is unpublished.
    crystal · 3 years ago
    @Gourav Goya Dear Gourav,
    Sorry can't solve this problem.
  • To post as a guest, your comment is unpublished.
    crystal · 3 years ago
    @Stacy Dear Stacy,
    The same problem does not appear in my case. The code prevent users from entering as well as deleting data from the specified range. Would you provide your Office version for further testing?
  • To post as a guest, your comment is unpublished.
    Fair · 3 years ago
    Thanx for the coding, but I've a problem to put 2 coding in 1 sheet, pls help.
  • To post as a guest, your comment is unpublished.
    Subhash Deb · 4 years ago
    i like to lock only the edited cells. once i enter any data to the empty cells, i require to lock the edited cell to be automitically locked but not the empty cells.
  • To post as a guest, your comment is unpublished.
    Jezamiah · 4 years ago
    For anyone who might have stumbled here since this comment.
    If you are having to unlock the worksheet EVERYTIME you fill in a cell then you need to first,

    - Unlock the spreadsheet
    - Highlight the area of the worksheet the code applies over
    - Right-click and go to 'format cells'
    - Go to the far right tab called 'Protection' and UNCHECK the 'Locked' section (Even if It appears as a solid fill instead of a tick)

    After that you will be able to enter data in multiple cells without having to unlock everytime. Bear in mind if you need to revisit locked cells to delete or edit information you may need to repeat the steps above.

    Hope this helps.
  • To post as a guest, your comment is unpublished.
    Stacy · 4 years ago
    I tried the code and seemed to work somewhat. It does however allow me to delete the date entered into the cell but only stops me when I try to enter something else. Is there a way to keep data from being deleted?
  • To post as a guest, your comment is unpublished.
    Gourav Goya · 4 years ago
    Hello Sir ,

    I am facing one problem with the same code while using this code with other cobe in VBA.

    Please suggest me some solution

    Thanks and Regards
    Gourav
  • To post as a guest, your comment is unpublished.
    rsrneuro · 4 years ago
    Thanks for the code. Please let me know how to do auto lock the cells (similar to the ones listed by you) ONLY AFTER saving the file
  • To post as a guest, your comment is unpublished.
    spence · 4 years ago
    Try this code instead:


    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MyRange As Range

    Set MyRange = Intersect(Range("A1:D100"), Target)
    If Not MyRange Is Nothing Then
    Sheets("Sheet1").Unprotect password:="hello"
    MyRange.Locked = True
    Sheets("Sheet1").Protect password:="hello"
    End If
    End Sub


    And remember to change range (A1:D100), password (hello) and sheet (Sheet1) names/numbers if it does not match the above :)
  • To post as a guest, your comment is unpublished.
    Nitin Ingole · 4 years ago
    This is not working when it reopen excel file please help
  • To post as a guest, your comment is unpublished.
    Pravallika p · 4 years ago
    Hello,

    I have a spreadsheet with the range A3:AN219, i would like to protect this range as and when input complete.
    Please help me on this. I tried above code but it is not working for me