人生最悪の忘れ物

いつもお世話になります。
WINDOWS7 EXCELL2010です。

シートの保護を実行すると下記のマクロが作動しないのですが何かいい方法はないでしょうか。
もし可能ならばご教示いただければ幸いです。

このマクロは素人の私が作成したもので合計のある行だけを表示するものです。

参考
Sub 非表示()
'
' 非表示 Macro
' マクロ記録日 : 2013/4/25 ユーザー名 : YOKOHAMA
''
Rows("72:87").Select
Selection.EntireRow.Hidden = True
Rows("89:95").Select
Selection.EntireRow.Hidden = True
Rows("97:105").Select
Selection.EntireRow.Hidden = True
Rows("107:112").Select
Selection.EntireRow.Hidden = True
Rows("114:121").Select
Selection.EntireRow.Hidden = True
Rows("123:131").Select
Selection.EntireRow.Hidden = True
Rows("133:145").Select
Selection.EntireRow.Hidden = True
Rows("147:152").Select
Selection.EntireRow.Hidden = True
Rows("154:159").Select
Selection.EntireRow.Hidden = True
Rows("161:169").Select
Selection.EntireRow.Hidden = True
Rows("171:179").Select
Selection.EntireRow.Hidden = True
Rows("181:187").Select
Selection.EntireRow.Hidden = True
Rows("189:195").Select
Selection.EntireRow.Hidden = True
Rows("197:205").Select
Selection.EntireRow.Hidden = True
Rows("207:214").Select
Selection.EntireRow.Hidden = True
Rows("216:223").Select
Selection.EntireRow.Hidden = True
Rows("225:229").Select
Selection.EntireRow.Hidden = True
Rows("231:238").Select
Selection.EntireRow.Hidden = True
Rows("240:243").Select
Selection.EntireRow.Hidden = True
Rows("245:250").Select
Selection.EntireRow.Hidden = True
Rows("252:259").Select
Selection.EntireRow.Hidden = True
Rows("261:266").Select
Selection.EntireRow.Hidden = True
Range("A1").Select
End Sub

A 回答 (2件)

マクロにシートを保護させます。

もちろん今既に保護されているシートに対して行います。
sub 非表示r1()
activesheet.protect userinterfaceonly:=true
range("72:266").entirerow.hidden = true
range("88:88,96:96,106:106,113:113,122:122,132:132,146:146,153:153,160:160,170:170,180:180,188:188,196:196,206:206,215:215,224:224,230:230,239:239,244:244,251:251,260:260").entirerow.hidden = false
end sub
みたいに。


たとえば「パスワードを付けてシートを保護」していたり、他にも「具体的にこういう条件を追加してシートを保護しています」みたいなのがあったのなら、その旨ご自分で「新しいマクロの記録」でマクロを録って、付け加えて下さい。




#補足
>合計のある行だけを表示するものです。

「この行は合計のある行だ」と、どこをどう調べたら判るのか、たとえば「A列に合計と書いてあるのが合計の行だ(=その行だけを表示したいんだ)」みたいな具体的な状況に応じた、それに合った合理的なマクロを書いていくのが実際には適当です。

この回答への補足

補足します。
このマクロが全てでシートの保護は手動で行いました。
すみませんてした。
これでシート保護は可能でしょうか。

Sub 非表示()
非表示 Macro
' マクロ記録日 : 2013/4/25 ユーザー名 : YOKOHAMA
Rows("72:87").Select
Selection.EntireRow.Hidden = True
Rows("89:95").Select
Selection.EntireRow.Hidden = True
Rows("97:105").Select
Selection.EntireRow.Hidden = True
Rows("107:112").Select
Selection.EntireRow.Hidden = True
Rows("114:121").Select
Selection.EntireRow.Hidden = True
Rows("123:131").Select
Selection.EntireRow.Hidden = True
Rows("133:145").Select
Selection.EntireRow.Hidden = True
Rows("147:152").Select
Selection.EntireRow.Hidden = True
Rows("154:159").Select
Selection.EntireRow.Hidden = True
Rows("161:169").Select
Selection.EntireRow.Hidden = True
Rows("171:179").Select
Selection.EntireRow.Hidden = True
Rows("181:187").Select
Selection.EntireRow.Hidden = True
Rows("189:195").Select
Selection.EntireRow.Hidden = True
Rows("197:205").Select
Selection.EntireRow.Hidden = True
Rows("207:214").Select
Selection.EntireRow.Hidden = True
Rows("216:223").Select
Selection.EntireRow.Hidden = True
Rows("225:229").Select
Selection.EntireRow.Hidden = True
Rows("231:238").Select
Selection.EntireRow.Hidden = True
Rows("240:243").Select
Selection.EntireRow.Hidden = True
Rows("245:250").Select
Selection.EntireRow.Hidden = True
Rows("252:259").Select
Selection.EntireRow.Hidden = True
Rows("261:266").Select
Selection.EntireRow.Hidden = True
Range("A1").Select
End Sub

Sub 銀行表示()
銀行表示 Macro
' マクロ記録日 : 2013/4/25 ユーザー名 : YOKOHAMA
Rows("2:67").Select
Selection.EntireRow.Hidden = False
Range("A1").Select
End Sub

Sub 銀行非表示()
銀行非表示 Macro
' マクロ記録日 : 2013/4/25 ユーザー名 : YOKOHAMA
Rows("3:64").Select
Selection.EntireRow.Hidden = True
Range("A1").Select
End Sub

Sub 詳細全表示()
'' 詳細全表示 Macro
' マクロ記録日 : 2013/4/25 ユーザー名 : YOKOHAMA
' Rows("88:266").Select
Selection.EntireRow.Hidden = False
Range("A1").Select
End Sub

補足日時:2013/05/05 07:23
    • good
    • 0

シートの保護を解除するしかありません


マクロの記録で
シートの保護の解除
シートの保護
と操作してください。
必要なこーどがえられますので
上記コードの最初に
シートの保護の解除

最後の行に
再度、シードの保護
するコードをコピーして追加してください。
    • good
    • 0

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