- 締切済み
仕事で使用しています。教えてください。
仕事で使用しています。教えてください。 エクセルの表でマクロを使用しているのですが、入力後保存して再度開くと入力できなくなってしまいました。 マクロ勉強中で、コピペしようしている為、どこがダメなのかがわかりません。 お分かりになる方、教えていただけますか? 現在使用しているマクロは Private Sub Workbook_Open() ActiveWorkbook.Unprotect Password:="8253" Sheets("日別管理").Visible = True Sheets("部門別").Visible = True Sheets("仕入原価").Visible = True Sheets("買掛").Visible = True Sheets("小口").Visible = True Sheets("一覧表").Visible = True Sheets("精算書").Visible = True Sheets("TOP").Visible = False Dim myWS As Worksheet For Each myWS In Worksheets With myWS .EnableSelection = xlUnlockedCells .Protect Password:="****", AllowFormattingColumns:=True, AllowFormattingRows:=True End With Next myWS End Sub Sub シートの保護() Dim myWS As Worksheet For Each myWS In Worksheets With myWS .EnableSelection = xlUnlockedCells .Protect Password:="****", AllowFormattingColumns:=True, AllowFormattingRows:=True End With Next myWS End Sub Sub シートの保護解除() Dim myWS As Worksheet Application.ScreenUpdating = False For Each myWS In Worksheets myWS.Unprotect Password:="****" Next myWS Application.ScreenUpdating = True MsgBox "シート保護解除しました。" End Sub 以上、3つです。 マクロを解除して使用してしまう方がいたので、マクロを使用してのみ使えるようにしたのですが…。 入力できなくなってしまいました
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- nattocurry
- ベストアンサー率31% (587/1853)
入力できないということですが、セルを選択することはできるんですよね? そのセルのロック状態はどうなっているのでしょうか? 入力しても良いセルはロックを解除してあるんですよね? ところで、ブックを閉じるときには、何も処理をしないのでしょうか? 本題からは逸れますが、通常的に保護しておきたいのであれば、保護の制御をわざわざマクロでする必要は無いと思うのですが。
- nattocurry
- ベストアンサー率31% (587/1853)
Private Sub Workbook_Open() の中の、 .Protect Password:="****", AllowFormattingColumns:=True, AllowFormattingRows:=True で、各シートを保護しているから、入力できないんでしょうね。 どこかで保護を解除しないと、入力できませんよ。 また、 Sub シートの保護() Sub シートの保護解除() という2つのサブルーチンは、どこで呼んでいるのでしょうか? ファイルを閉じるときに、シートを保護して非表示にして、 ファイルを開くときに、シートの保護を解除して表示する、 ということをやりたいのでしょうか?
補足
回答ありがとうございます。 各シートで、入力する所、入力できないようにしてある所があります。 保護しておかないと、関数を消してしまう方等いるため、保護してありますが、 【マクロを有効にする】を選択しないで、開いてしまう方がいるので、マクロ有効にして開くように…と作成しました。 ファイル開封時の保護ではなく、通常的に保護しておきたい…って感じです。 (私が修正等する際のみ保護解除) この説明で、お分かりになりますか?