まさ工房

ExcelVBAとAcessDBを利用した業務支援ツールを作成する工房です

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

       f:id:m_kbou:20190813095555p:plain

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

 

【目次】

 

構文

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

=======================================================================

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

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

=======================================================================

[説明]:

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

[記述例]:

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

 

使い方

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

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

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

[記述例]:

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

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

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

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

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

[実行例]:

・”セルのロックを設定しました。”のメッセージが表示される。

f:id:m_kbou:20190813095621p:plain

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

 

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

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

[記述例]:

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

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

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

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

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

[実行例]:

・”セルのロックを解除しました。”のメッセージが表示される。

f:id:m_kbou:20190813095635p:plain

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

 

おわりに

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