小技集

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



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予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





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

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


- 人気の記事 -



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



サイト累計閲覧数

6690785

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

Excel完全制覇


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

【Excel】値の発生頻度を瞬時に計算

【Excel】特定のセルへ瞬時に移動

【Excel】VLOOKUP関数の参照元の表を切り替える

【Excel】VLOOKUPで「見つかった一番下の値」を抽出する方法

【Excel】IFS関数で「その他」を表現

【Excel】条件付き書式で二重の罫線を設定

【Excel】横方向の並べ替え

【ExcelVBA】完了タスクを非表示にして着手中タスクを上位表示する

【Excel】XLOOKUP関数で指定した複数項目を抽出

【Word】指定した位置でページを分ける

【Excel】VLOOKUP関数で複数の表から検索

【Excel】表の中の集計項目を瞬時に埋める

【ExcelVBA】データ登録フォームを開発する

【Excel】スクロールバーを活用して行の色付け

【Excel】キーボードのみでフィルター操作

【Excel】指定したセルを瞬時に選択!名前ボックスの活用術

【Excel】表のデザインを自動で作成する方法 2選

【Excel】期間外のデータを非表示にする

【Excel】対象月の営業開始日(終了日)を求める

【Excel】「選択範囲内で中央」の本当の使い道

【Excel】数式が入力されているセルを自動で色付けする

【Excel】数式の引数に途中の行から最終行までを指定

【Excel】長い数式を改行して見やすくする

【Excel・Googleスプレッドシート】マウスで横方向へスクロール

【Excel】日付と曜日を表示形式で改行して表示する





一覧ページへ

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

メンバーに加入すると多くの特典が得られます

各プラン特典一覧 各プラン特典一覧

 加入ページへ 
⚠️今が最安値です⚠️

※メンバーページと連携すると表示されなくなります