プロが教える店舗&オフィスのセキュリティ対策術

エクセルのひとつのブックで、その中には全社員、岡田、田中、本田、宮田・・・という41のシートがあります。(一番左が全社員、次が岡田と田中から順に並んでおります。)

これら48のシートすべてに、シートの保護をかけております。(パスワードは4568です。)

これら48のシートのうち、一番左のシートである全国より右のシート(47シート)すべてのA列とC列からE列を非表示にしたいと思います。

その後、もとのようにシートの保護をかけたいと思います。

いろいろと調べて試してみましたが、複数のシートを選択し、列を非表示にするマクロを
をかけても、最初のシートだけしか作用しませんでした。

本当に申し訳ないのですが、ご指導をいただけたら幸いです。

A 回答 (2件)

こんにちは!



ブックの保護ではなく、各Sheetを保護しているのですね?
一例です。

Sub Sample1()
Dim k As Long, myRng As Range
For k = 1 To 47 '//←47番目のSheetまで
With Worksheets(k)
.Unprotect Password:="4568"
Set myRng = Union(.Range("A1"), .Range("C1:E1"))
myRng.EntireColumn.Hidden = True
.Protect Password:="4568"
End With
Next k
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

本当にありがとうございました。無事に機能しました。
深く感謝させていただきます。

お礼日時:2015/06/11 21:02

シートを非表示にするのではなく、別のブックから参照するようにしてはどうか。


そうすれば作業用のシートのデータサイズは小さくて済む。
社員分のブックを作成しておけば、月ごとにシート分けしておけば集計もしやすいだろう。

もし上記のような使い方をしたいのであれば、エクセルではなくアクセスを使うことを勧める。
AccessはExcelのブックを利用できるデータベースソフトだ。
入力フォームも柔軟に作成できるので単純なデータベースくらは簡単にできる。
(当然難しいこともできる)
    • good
    • 0
この回答へのお礼

忙しいところ、返答をいただきまして、誠にありがとうございます。
別のブックを参考にするという考えは、勉強になりました。

お礼日時:2015/06/11 21:03

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