教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】セルのロックを設定又は設定解除(Locked)するにはどうすればいいの?教えて!

f:id:m_kbou:20200419124641p:plain

選択したセルのロックを設定又は設定解除する方法について説明します。セルをロックした後にシートを保護すると、対象のセルは変更不可になります。また、セルのロックを解除した後にシートを保護すると、対象のセルは変更可能となります。

 

 

構文

記述方法は以下の通りとなります。

Range(”[セル範囲]”).Locked = True or False

[説明]:

セルのロックを設定するには「Range(”[セル範囲]”).Locked = True」と記述し、セルのロックを解除するには「Range(”[セル範囲]”).Locked = False」と記述します。[セル範囲]にはセルのロックを設定又は解除したいセル範囲を記述します。また、[セル範囲]は「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「[セル範囲]で記述したセルの範囲をセルのロック設定又はロック解除して下さい。」との意味になります。

[記述例]:

Range("A1:B1").Locked = True
Range("A1:B1").Locked = False

 

使い方

使い方について具体的に説明します。

対象のセル範囲をロック設定する方法

対象のセル範囲をロック設定する方法について説明します。

[プログラミング例]:

Sub ロック設定()
  Range("A1:B1").Locked = True
  MsgBox "セルのロックを設定しました。"
End Sub

内容は、「A1セル~B1セルの範囲をロック設定し、最後にMsgBoxで”セルのロックを設定しました。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210416135510p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

※実行する前に事前確認作業があります。

-----------------------------------------------------

(事前確認作業①)

保護するセルの状態を確認します。今回はA1セル~B1セルを保護するため、A1セルの保護状態を確認します。A1セルを選択して右クリックします。

f:id:m_kbou:20210416135824p:plain

(事前確認作業②)

 小窓が開くので「セルの書式設定」を選択します。

f:id:m_kbou:20210416135929p:plain

(事前確認作業③)

セルの書式設定画面が開くので、「保護」タブの中にあるロック項目を確認します。今回はA1セルが保護されていない状態のため、ロック項目はチェックされていない事が分かります。このロック項目にチェックを付ける処理について、上記プログラミング例を使用して以下で説明していきます。

f:id:m_kbou:20210416140217p:plain

-----------------------------------------------------

①<ロック設定>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210416141159p:plain

②結果は以下の様になり、MsgBoxで「セルのロックを設定しました。」が表示されます。 (※上記のプログラミング例の内容が実行され、A1セル~B1セルのセル保護がされました。)

f:id:m_kbou:20210416141427p:plain

③(事前確認作業①~③)で行ったロック項目を再度確認します。すると、今度はロック項目がチェックされている事が分かります。

f:id:m_kbou:20210416142111p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

 対象のセル範囲をロック設定する方法についての説明は以上です。

 

対象のセル範囲をロック解除する方法

対象のセル範囲をロック解除する方法について説明します。

[プログラミング例]:

Sub ロック解除()
  Range("A1:B1").Locked = False
  MsgBox "セルのロックを解除しました。"
End Sub

内容は、「A1セル~B1セルの範囲をロック解除し、最後にMsgBoxで”セルのロックを解除しました。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210416135530p:plain

※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

※実行する前に事前確認作業があります。

-----------------------------------------------------

(事前確認作業①)

保護解除するセルの状態を確認します。今回はA1セル~B1セルを保護解除するため、A1セルの保護状態を確認します。A1セルを選択して右クリックします。

f:id:m_kbou:20210416135824p:plain

(事前確認作業②)

 小窓が開くので「セルの書式設定」を選択します。

f:id:m_kbou:20210416135929p:plain

(事前確認作業③)

セルの書式設定画面が開くので、「保護」タブの中にあるロック項目を確認します。今回はA1セルが保護されている状態のため、ロック項目はチェックされている事が分かります。このロック項目のチェックを外す処理について、上記プログラミング例を使用して以下で説明していきます。

f:id:m_kbou:20210416142111p:plain

-----------------------------------------------------

①<ロック解除>ボタンをクリックします。このボタンには上記のプログラミング例のプログラムが登録されています。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210416142844p:plain

②結果は以下の様になり、MsgBoxで「セルのロックを解除しました。」が表示されます。 (※上記のプログラミング例の内容が実行され、A1セル~B1セルのセル保護解除がされました。)

f:id:m_kbou:20210416142910p:plain

③(事前確認作業①~③)で行ったロック項目を再度確認します。すると、今度はロック項目がチェックされていない事が分かります。

f:id:m_kbou:20210416140217p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

対象のセル範囲をロック解除する方法についての説明は以上です。

 

おわりに

今回はセルのロックを設定又は解除する方法について説明しました。セルのロックを設定又は設定解除しただけでは指定したセル範囲は常に変更可能な状態となります。セルの設定又は設定解除を実行した後にシートを保護する事で、初めてセルの変更可否が有効となります。よって、セルのロック設定/設定解除とシート保護は一連処理と理解しておいて下さい。