昨日、6日のWindows10データ移行の続きを高齢者いきいき館で行ったが、
- マクロ家計簿77をバージョン1.41aに上げ、
- [シートの保護]を行った‥‥ が、上手く動作しなかった。
- 2行目のカーソルの動きがおかしい?
[翌年分ブック作成]で「2019年の家計簿」を作り、シート保護のマクロを作った時の方法で行った‥‥ が、やはり上手く動作しなかった。
- Windows10 Home、バージョン:1709、OSビルド:16299.192
- Excel2013 (15.0.4981.1000) MSO (15.0.4981.1000) 32ビット
- 何気なく[今すぐ更新]した‥‥ ら、15.0.4997.1000 になった。これにもビックリ!!!
改めて、“Excel2013 シートの保護” でググり、Excel2013での方法を確認した。
- Excel 2013で一部のセルを変更できないようにする方法(NEC LAVIE公式サイト 更新日:2016/07/14)
操作手順
- 編集を許可するセルをドラッグまたはクリックして選択します。
- 選択したセルを右クリックして、表示された一覧から「セルの書式設定」をクリックします。
- 「セルの書式設定」が表示されます。
「保護」タブをクリックし、「ロック」のチェックを外して「OK」をクリックします。 - 続いてシートを保護します。
リボンから「校閲」タブをクリックし、「変更」グループの「シートの保護」をクリックします。 - 「シートの保護」が表示されます。
「シートとロックされたセルの内容を保護する」にチェックが入っていることを確認して、「OK」をクリックします。
補足
シートの保護を解除する場合は、リボンから「校閲」タブをクリックし、「変更」グループの「シート保護の解除」をクリックします。
マクロの記録からVBAコードを取得し、下記とした。
バージョンを 1.41b とし、テストにはならないと思うが自分の家計簿で試行中‥‥
01.Function シートの保護(arg保護 As Boolean) As Boolean
02.Dim lastCol As Long, lastRow As Long
03.
04. If arg保護 = False Then
05. ActiveSheet.Unprotect
06. Else
07. 'Enter押下で右に移動する…ver.1.41a
08. Application.MoveAfterReturn = True
09. Application.MoveAfterReturnDirection = xlToRight
10. '入力列の範囲を選択し、
11. lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
12. Range(Columns(1), Columns(lastCol)).Select
13. 'セルのロックを解除する。
14. Selection.Locked = False
15. Selection.FormulaHidden = False
16. 'セルを保護する。
17. ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
18. , AllowFormattingCells:=True, AllowFormattingColumns:=True
19.
20. lastRow = Cells(Rows.Count, 2).End(xlUp).Row
21. Cells(lastRow + 1, 1).Select
22. End If
23.
24.End Function