小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2025年5月23日【ID:0】

メンバー限定

【ExcelVBA】入力後のセルを自動で編集不可にする

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


「入力後のセルを誤って上書きしてしまった…」そんな経験はありませんか?
今回は、一度入力したセルを自動で編集不可にする仕組みの開発方法について解説していきます。

※こちらで実現したファイルは記事の最後にて配布しています。


1. はじめに

Excelでデータを入力した後、うっかり編集されることを防ぐ方法として、セルを自動で編集不可にする仕組みが有効です。
特に業務で扱うシートでは、入力後のデータを守る必要がある場合が多いです。今回紹介する方法を使えば、誤って編集されることなく、データの整合性を保つことができます。


2. シート側の設定

まずは、入力を許可するセルを選択し、そのセルのロック設定を解除します。
これにより、シートを保護した際に、ロックが解除されたセルのみ編集可能になります。

こちらでは、以下のシートのB列にある「受付済みID」を入力する項目に対して設定していきます。

まずは、B列全体を選択し、Ctrlキーを押しながらセルB1~B6を選択することで、一部の選択を解除します。

次に、選択範囲内で右クリックし、「セルの書式設定」を選択します。

書式設定の画面の[保護]タブを選択し、ロックのチェックを解除します。

以上で、シートの設定は完了です。
この設定を行うことで、シートを保護した際に、ロックを解除したセルだけが編集可能になります。


3. 開発準備

次に、Excel VBAを使って、セルに値を入力した後、そのセルが自動的に編集不可になるように設定します。

このように、特定のシート内の特定のセルが編集された時に処理を実行する仕組みを実現するには、「シートモジュール」を使用します。

シートモジュールは、該当するシートのタブ上で右クリックし、[コードの表示]を選択することで表示することができます。

選択すると、以下のエディタ画面(VBE)が表示されます。
また、該当するシートのシートモジュールが表示された状態になります。
「Option Explicit」は、VBEの設定内容次第では表示されません。「Option Explicit」についての解説はこちらでは省略します。

次に、該当するシートのセルに値を入力すると同時に処理が実行される特殊なプロシージャ(イベントプロシージャ)を用意する必要があります。
そのためには、シートモジュールの左上のリストから「Worksheet」を選択します。

「Worksheet」を選択すると、自動で「Worksheet_SelectionChange」というプロシージャが表示されます。
このプロシージャは、該当するシート上のいずれかのセルが選択されると同時に処理が実行されるイベントプロシージャになります。

ただ、今回使用するイベントプロシージャは、セルに値を入力すると同時に処理が実行されるものになります。
そのため、右上のリストから「Change」を選択します。

表示された「Worksheet_Change」というプロシージャを活用します。
「Worksheet_SelectionChange」というプロシージャに関しては削除して問題ないです。


4. コードの記述

以下のコードを記述します。


続きはIT予備メンバー限定です。

メンバー限定コンテンツになります。




IT予備メンバーページと連携することで内容を確認することができます。

メンバーとは


すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。

ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


小技集-電子書籍販売ページ 小技集-電子書籍販売ページ
メンバー募集 メンバー募集






リンクの共有はこちらから行えます。

  リンクコピー    X Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

8144325

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【ExcelVBA】マークのある行を削除する

【Excel】各シートのセルの値を一括抽出

【Excel】グラフの項目の順番を逆にする

【Word】文頭のアルファベットが自動で大文字になる

【Excel】簡易的な検索機能を数式のみで実現

【Excel】表に自動で罫線を設定(カテゴリー別の罫線も設定)

【Excel】IF関数のネスト問題を「IFS関数」で解決

【ExcelVBA】データに紐づいた管理フォルダを自動作成

【Excel】空白演算子でマトリックス表から値抽出

【Excel】フリガナを瞬時に自動設定

【Excel】図形の既定の書式を好みの書式にする

【Excel】グラフタイトルにセルの値を参照させる

【ExcelVBA】選択した行を自動で色付け

【ExcelVBA】誤操作防止!実行ボタンを押したときに確認画面を表示する

【Excel】単位をセルの端に表示する

【Excel】図形の幅ギリギリまでテキストを表示

【Excel】指定した期間の営業日数を求める

【Excel】PDFファイルを読み込む方法

【Excel】項目に合わせて自動入力切替

【Excel】非表示セルを除いてコピー&ペースト

【Excel】Officeクリップボードを活用したメモ

【Excel】表の順番をローテーション

【Excel】各商品の最終購入日を表から抽出する

【ExcelVBA】選択データの全項目を一括表示

【Excel】予定表から「次回の予定」を抽出(XLOOKUP)





一覧ページへ

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ