いつもお世話になっております。
先日ここで下記のマクロを教わって非常に感動して使い始めて、今日は他のbookへも展開しようとしたのですが、何故かコピペしたbookではエラーがでて動きません。
何度もの試行錯誤で、保護範囲に結合セルが入った場合エラーになることが分かって以降順調に使えていたのですが。
> With ThisWorkbook.Sheets(MySheet)
が黄色にハイライトになります。
bookやシートを特定するようなコードは無いように思うのですが。
何が悪いのでしょう?
問題ないbookとどこが違うのでしょう?
===================================
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Const RowS = 16 'ロック範囲開始行
Const RowE = 500 'ロック範囲終了行’
Const ColS = 1 'ロック開始列
Const ColE = 8 'ロック終了行
Const MyPassword = "" 'パスワード(省略可)
Const MySheet = "入力表" '保護したいシート名
Dim RowCnt As Long
Dim ColCnt As Long
With ThisWorkbook.Sheets(MySheet)
.Unprotect Password:=MyPassword
For RowCnt = RowS To RowE
For ColCnt = ColS To ColE
If .Cells(RowCnt, ColCnt).Value <> "" Then
.Cells(RowCnt, ColCnt).Locked = True
Else
.Cells(RowCnt, ColCnt).Locked = False
End If
Next ColCnt
Next RowCnt
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, _
Password:=MyPassword
End With
End Sub
=====================================
お礼
早々のご回答(ご指摘)ありがとうございます。 >Const MySheet = "入力表" '保護したいシート名 ↑ シートを特定するコードがありました。 先日色々試した時には必ず「入力表」があるbookでしたので気づきませんでした。