• 締切済み

仕事で使用しています。教えてください。

仕事で使用しています。教えてください。 エクセルの表でマクロを使用しているのですが、入力後保存して再度開くと入力できなくなってしまいました。 マクロ勉強中で、コピペしようしている為、どこがダメなのかがわかりません。 お分かりになる方、教えていただけますか? 現在使用しているマクロは 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つです。 マクロを解除して使用してしまう方がいたので、マクロを使用してのみ使えるようにしたのですが…。 入力できなくなってしまいました

みんなの回答

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

入力できないということですが、セルを選択することはできるんですよね? そのセルのロック状態はどうなっているのでしょうか? 入力しても良いセルはロックを解除してあるんですよね? ところで、ブックを閉じるときには、何も処理をしないのでしょうか? 本題からは逸れますが、通常的に保護しておきたいのであれば、保護の制御をわざわざマクロでする必要は無いと思うのですが。

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

Private Sub Workbook_Open() の中の、 .Protect Password:="****", AllowFormattingColumns:=True, AllowFormattingRows:=True で、各シートを保護しているから、入力できないんでしょうね。 どこかで保護を解除しないと、入力できませんよ。 また、 Sub シートの保護() Sub シートの保護解除() という2つのサブルーチンは、どこで呼んでいるのでしょうか? ファイルを閉じるときに、シートを保護して非表示にして、 ファイルを開くときに、シートの保護を解除して表示する、 ということをやりたいのでしょうか?

eke1205
質問者

補足

回答ありがとうございます。 各シートで、入力する所、入力できないようにしてある所があります。 保護しておかないと、関数を消してしまう方等いるため、保護してありますが、 【マクロを有効にする】を選択しないで、開いてしまう方がいるので、マクロ有効にして開くように…と作成しました。 ファイル開封時の保護ではなく、通常的に保護しておきたい…って感じです。 (私が修正等する際のみ保護解除) この説明で、お分かりになりますか?

関連するQ&A