• 締切済み

シートの保護を実行した時、マクロだけは作動させたい

いつもお世話になります。 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

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.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列に合計と書いてあるのが合計の行だ(=その行だけを表示したいんだ)」みたいな具体的な状況に応じた、それに合った合理的なマクロを書いていくのが実際には適当です。

dorasuke
質問者

補足

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

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

シートの保護を解除するしかありません マクロの記録で シートの保護の解除 シートの保護 と操作してください。 必要なこーどがえられますので 上記コードの最初に シートの保護の解除 最後の行に 再度、シードの保護 するコードをコピーして追加してください。

関連するQ&A