ExcelマクロVBA入門 | 第68回.シートの保護(Protect) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-06-04

第68回.シートの保護(Protect)


ワークシートを保護し、無用な改変、意図しない変更から保護します。



・シートの保護


・Worksheet.Protectメソッド


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


式には、Worksheetオブジェクトを指定します。

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


引数が非常に多くあります。


これは、ワークシートの保護操作でのダイアログの、チェックボックスに対応しています。




この一つ一つのチェックが、上記の引数に対応しています。


複雑な指定をする場合は、マクロの記録を利用すると良いでしょう。



注意する引数


Contents


エクセルの基本ですが、ロックされているセルが対象です。


「セルの書式設定」→「保護」→「ロック」


ここに、チェックが付いていて、


Contents:=True


として、初めてセルが保護されます。



DrawingObjects、Scenarios


上のシート保護のダイアログは、


オブジェクトの編集

シナリオの編集


となっています。


つまり、シート保護した時に、編集を許可する場合にチェックを付けます。


他の引数は、チェックを付けた時にTrueなのですが、


この2つは、チェックを外した時がTrueになります。


マクロの記録を使う場合は、少し注意が必要です。




シートの保護解除


・Worksheet.Unprotect メソッド


式.Unprotect Password




・実践例


ユーザーには変更させないシートを、マクロで変更する場合。

Worksheets(1).Unprotect

・・・シートへの変更処理・・・

Worksheets(1).Protect AllowFiltering:=True


上記では、ユーザーにオートフィルタの使用を許可しています。






同じテーマ「ExcelマクロVBA入門」の記事

第69回.シートの非表示(Visible)
第70回.ウィンド枠の固定(FreezePanes)
第71回.印刷(PrintOut)
第72回.印刷プレビュー(PrintPreview)
第73回.ページ設定(PageSetup)
第74回.ファイルを開くダイアログ(GetOpenFilename)
第75回.名前を付けて保存ダイアログ(GetSaveAsFilename)

新着記事 ・・・新着記事一覧を見る

Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)
ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)
フォルダの一覧取得・作成・削除(Folder)|Google Apps Script入門(1月24日)
フォルダとファイルを扱う(DriveApp)|Google Apps Script入門(1月24日)
スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.変数とデータ型(Dim)|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • シートの保護(Protect)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP