Excel Microsoft VBA

シートの保護・解除でセキュリティ強化 !【VBA入門講座#10】

サブロー
こんにちは。サブローです。

『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。

仕事の改善や個人的な知識向上に役立ててください(^o^)

第10回目の今回は

・ワークシートの保護・解除

について解説していきますので、よろしくお願いします。

前回までのVBAに関するINDEXは下記を参照してくださいね。

↓サブログ内部リンク(VBA用INDEX)↓

目次

Excel VBA講座-目次(INDEX)

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 スラスラ読めるExcel VBA ...

続きを見る

シートの保護

ワークシート内に入力されている部分を、誰かに誤って変更されたり、消されたりされないようにシートを保護することができます。

またVBAである処理をしていき、最終的にシートの保護をして保存するという流れが可能です。

<書式>

Worksheet.Protectメソッド
’ワークシートを保護し、変更できないようにします。

式.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)

全ての引数は省略可能です。ただ編集の制約が大きくなるので、編集可能にしておきたいものがあれば下記を参考に引数を入れてみましょう!

Password パスワードを文字列で指定します。大文字と小文字が区別されます。
この引数を省略すると、ワークシートまたはブックはパスワードの使用なしで保護解除が可能です。
この引数を指定すると、保護解除をするためには、そのパスワードが必要になります。
DrawingObjects 描画オブジェクトを保護するには、True を指定します。
Contents オブジェクトの内容を保護するには、True を指定します。
この引数による保護対象は、グラフの場合はグラフ全体、ワークシートの場合はロックされているセルです。
Scenarios シナリオを保護するには、True を指定します。この引数はワークシートの場合のみ有効です。※シナリオとは、名前が付けられて保存されている入力値のグループです。
UserInterfaceOnly True を指定すると、画面上からの変更は保護されますが、マクロからの変更は保護されません。この引数を省略すると、マクロからも画面上からも変更することができなくなります。保護を維持したままマクロを動かす際に有効です。
AllowFormattingCells True を指定すると、ユーザーは保護されたワークシートのセルを書式変更が可能です。
AllowFormattingColumns True を指定すると、ユーザーは保護されたワークシートの列の書式変更とが可能です。
AllowFormattingRows True を指定すると、ユーザーは保護されたワークシートの行の書式変更が可能です。
AllowInsertingColumns True を指定すると、ユーザーは保護されたワークシートに列を挿入することが可能です。
AllowInsertingRows True を指定すると、ユーザーは保護されたワークシートに行を挿入することが可能です。
AllowInsertingHyperlinks True を指定すると、ユーザーは保護されたワークシートにハイパーリンクを挿入することが可能です。
AllowDeletingColumns True を指定すると、ユーザーは保護されたワークシートの列を削除することができ、削除される列のセルはすべてロック解除されます。
AllowDeletingRows True を指定すると、ユーザーは保護されたワークシートの行を削除することができ、削除される行のセルはすべてロック解除されます。
AllowSorting True を指定すると、ユーザーは保護されたワークシートで並べ替えを行うことが可能です。
並べ替え範囲内のセルは、ロックと保護が解除されている必要があります。
AllowFiltering True を指定すると、ユーザーは保護されたワークシートにフィルターを設定することが可能です。
ユーザーは、フィルター条件を変更できますが、オートフィルターの有効と無効を切り替えることはできません。
AllowUsingPivotTables True を指定すると、ユーザーは保護されたワークシートでピボットテーブル レポートを使用することが可能です。

<コード記入例1>

Sub シート保護()

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub


<コード記入例2>

Sub シート保護パスワード有()

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:="lock"

End Sub


シートの保護解除

シートの保護(ロック)の解除をおこなう場合、『Unprotect』メソッドを使用します。またパスワードが設定されている場合、引数「Password」にパスワードの文字列を指定します。

VBAで一旦シート保護を解除し、中身を変更・修正し、再度保護をかけるような流れを作ることも可能です。

 

<書式>

Worksheet.Unprotect メソッド
’ワークシートの保護を解除します。

式.Unprotect Password

Password シートの保護を解除するためのパスワードを指定します。なお、パスワードでは大文字と小文字は区別されます。
シートの保護にパスワードが指定されていないときは、この引数は無視されます。

<コード記入例3>

Sub シート保護解除()

ActiveSheet.Unprotect

End Sub


<コード記入例4>

Sub シート保護解除パスワード有()

ActiveSheet.Unprotect Password:="lock"

End Sub

モグゾー
それでは、今回はここまで。最後までお読みいただきありがとうございました!
下のVBA講座も是非ご覧下さい!!

2020年4月14日公開 | 2020年12月12日更新

~INDEX一覧~

エクセル関数の勉強 1

サブローエクセル/Excel関数の一覧にしています。本ブログ内で記事にしているものは、講座の列にリンク付けを随時行います(^o^) ※使用頻度のランクに関しては、個人的な主観でランク付けをしています。 ...

2

サブロー危険物取扱者試験 乙4種対策講座の目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 【目次/INDEX】 講座ID分類内容リンク まとめ1法令#0『試験に出るポイ ...

3

サブローQC(品質管理)検定に関する説明が増やして行く予定なのでリンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 モグゾー対象級を記載していますが、あく ...

4

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 スラスラ読めるExcel VBA ...

-Excel, Microsoft, VBA
-, ,

Copyright© サブログ , 2024 All Rights Reserved Powered by AFFINGER5.