| すぐマク YNxv9239 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| ユーザーフォームのコマンドボタンからワークシートを保護したいが? |
|
|
|||
|
「ExcelVBAマクロ500連発」掲載マクロ専用の質問フォームでお送りいただきました。質問対象のマクロ番号がはっきりしませんが、読者さんでしょうか? このホームページでは、一般のご質問用にたくさんの窓口 を用意していますので、次回からは、そちらをご利用くださるようお願いします。 「苦戦しながらあれやこれや」ということですが、ご自分がどのようにしたのか具体的に提示され、キブアンドテイクの精神で質問されたほうが、よい回答が得られるかと思います。 (こちらのページ もご参照ください) もし、「ユーザーフォームを閉じるだけでシートの保護が解除できるマクロ」があるならば、そうしたい人にとっては、貴重な情報になると思います。 回答に入ります。 右図のようなユーザーフォームを表示して、「Sheet1」を保護したり、解除したりするとしましょう。
1. ユーザーフォームを表示するマクロを、下記のように標準モジュールに作成する
Sub ユーザーフォームを表示する()
Worksheets("Sheet1").Activate
UserForm1.Show
End Sub
2. コマンドボタンがクリックされたときに動作するマクロを、下記のようにフォームモジュールに作成する
Private Sub CommandButton1_Click()
Worksheets("Sheet1").Activate
ActiveSheet.Protect 'ワークシートを保護する
End Sub
Private Sub CommandButton2_Click()
Worksheets("Sheet1").Activate
ActiveSheet.Unprotect 'ワークシートを非保護にする
End Sub
一般的に、ユーザーフォームからワークシートを操作する場合は、そのワークシートをアクティブにするコードを組み込んでおくと無難です。
サンプルブックのダウンロードは ここをクリック (YNxv9239_SheetProtect.xls 29KB) ※ 一旦、ブックをハードディスクに保存し、後で改めて開いてから実行してください。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |