アプリ版:「スタンプのみでお礼する」機能のリリースについて

複数あるシートにそれぞれ保護をかけてあるエクセルがあります。
毎回それぞれのシートに保護をかけてからブックを閉じるは手間がかかる上、
パソコンが不得意な方も共有で使うため、自動で保護をかけられるようにしたいと思っていますが、
そのようなことは可能なのでしょうか?

保護の内容としては、データ入力を行うセル以外に保護をかけ、
商品名や計算式を替えられないようにしているものです。

ちなみに苦肉の策で、マクロの記録を使い、保存時に自動で保護が掛かるようにしようと試みましたがうまくいきませんでした。

分かりにくい説明で申し訳ありませんが、良い方法があったら教えてください。

A 回答 (4件)

パスワードを使用する場合には



例.パスワードが「111」の場合
Sheets(i).Protect "111"
Worksheets("Sheet2").Protect "111"

のようにProtectの後ろに半角スペース+""でパスワードを囲みます。

御自身で登録したマクロをこっそりと実行されるのでしたら、
ボタン等を配置せずに直接「Alt」+「F8」等から実行される方法もございます。

ちなみに保護の解除は
Sheets(i).Unprotect "111"
等で可能です。
    • good
    • 0
この回答へのお礼

お陰様で出来ました!!
本当に助かりました。
自分でやったときは、正しくパスワードが保存されずに困ってしまったのですが、
教えて頂いた通りにやったら出来ました。
本当にありがとうございました。

お礼日時:2008/10/17 16:20

ブック内にある全てのシートに保護をかけて良い場合は、


ThisWorkbookに

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer
For i = 1 To Worksheets.Count
Sheets(i).Protect
Next
End Sub

ではいかがでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
保護をかけられました。
ただ、この場合パスワードが掛からなくなるのですが、
その点もカバーできたりしますでしょうか?

お礼日時:2008/10/17 16:14

次の様にVBAで作ったらどうでしょうか?


メインのシートにボタンを貼り付け(CommandButton1の名前)
クリックすると各シート(Sheet1,Sheet2)にプロテクトがかかり
自動的に保存・終了します。CommandButton1・Sheet1,Sheet2の名前は自由に変更します。

Private Sub CommandButton1_Click()
'シート保護
Worksheets("Sheet2").Protect
Worksheets("Sheet3").Protect
'保存終了
ActiveWorkbook.Save
ActiveWorkbook.Close False
End Sub
    • good
    • 0
この回答へのお礼

早速にありがとうございます。
私の説明不足なのですが、このブックを使う中で管理者の数人だけがシートの保護を外し編集するので、
出来るだけボタンとかつけずに、こっそりと保護のの付け外しをしたいのです。
また保護する時にはパスワードを使用したいのです…
そんなことは可能なのでしょうか?

お礼日時:2008/10/17 15:10

>マクロの記録を使い、保存時に自動で保護が掛かるようにしようと試


>みましたがうまくいきませんでした。

コードをアップしてみてください。

この回答への補足

早速にありがとうございます。
試してみます。

補足日時:2008/10/17 15:13
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!