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

EXCELのVBA初心者です。

現在、sheet数11(sheet1から10が各担当の月別、商品別売上げ、sheet11が各担当のsheetから月別に商品毎、売上合計を集計)のEXCELを作成しました。

各担当毎の行数、列数も比較的多いことから、列と行をグループ化しています。
また、いくつかのセルで計算式(例えば売上個数と単価)を設定しています。
※各担当毎の書式や計算式を設定したセルはすべて同じ

このEXCELファイルを共有化して、複数人で処理すること、また、コピペなどにより計算式を削除されないようにシートに保護をかたところ、グループ化のコマンドが操作できなくなってしまいました。

いろいろ調べたところ、以下のVBA(マクロ)で解決できると知ったのですが、このマクロでは、設定したsheetのみにしか対応できません。

複数のsheet(今回はSheet1からsheet10まで、sheet11は不要)に対応させるにはどうすればよいのでしょうか?

どなたかご教授いただけると助かります。


調べたマクロ
**************************************************************************
Private Sub Workbook_Open()
Sheets("Sheet1").EnableOutlining = True
Sheets("Sheet1").Protect Password:="****", DrawingObjects:=True, _
contents:=True, UserInterfaceonly:=True
End Sub
**************************************************************************

A 回答 (1件)

こんばんは。


以下は、ThisWorkbook モジュール貼り付けます。
このマクロは、Sheet12 以上であっても、Sheet11のみを除外して保護設定します。

'//
Const PSWD As String = "****" '私の場合は、いつも外に置きます。
Private Sub Workbook_Open()
 Dim ws As Worksheet
 For Each ws In ThisWorkbook.Worksheets
  Select Case ws.Name
   Case "Sheet11" '除外するシート名
   Case Else
    ws.EnableOutlining = True
    ws.Protect Password:=PSWD, DrawingObjects:=True, _
    Contents:=True, UserInterfaceOnly:=True
  End Select
 Next ws
End Sub
'//

'おまけ(同じモジュールで使ってください。)
Sub OpenProtect()
'解除用
 Dim ws As Worksheet
 For Each ws In ThisWorkbook.Worksheets
  ws.Unprotect Password:=PSWD
 Next
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
また、お礼が遅くなりすみません。

アドバイス頂いた通り設定したのですが、何故だかうまくいきませんでした。
取り敢えず、もう少し試行錯誤したいと思います。

お礼日時:2015/02/21 08:38

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