どうやって機能を実現しているんだ?
機能をトレースしようと思った時にセルに保護がかかっているために、数式を確認するどころか、セルの選択自体が出来ない。
そんな時の対処方法をご紹介。
取り敢えず色々選んでみようとする
今回の例でいうとセルJ1、J2、J3以外は下記のセルの保護がかかっているため、セルの選択をすることも出来ない状態です。
シートの保護がかかっているような資料に出くわしたことがないので、色々試してみます。
・セルのクリック
・カーソルキーでの移動
・タブキーでの移動
・Ctrl + Aでの全選択
・ジャンプ機能
いづれの機能を利用しても(ジャンプに至っては使用できない)、保護されたセルを選択することが出来ないため、数式を確認できません。
そうか「数式を確認」出来ればセルを選択する必要はないのか。
数式の表示
Excelの標準機能に「数式の表示」という機能があります。
数式タブの中にあります。
普通は計算式の結果がセルに表示されていますが、これを選択すると入力されている計算式が表示されるようになります。
シートの保護がかかった状態で数式の表示を選択してみると
相変わらず保護セルを選択することは出来ませんが、無事に数式を確認することが出来ました。
なるほど、Sum関数を使用していたのですね。
VBAであぶり出す
VBAを使用して確認することは出来るのでしょうか。
試してみます。
Debug.Print
Sub あぶりだし() Debug.Print Range("j4").Formula End Sub
簡単にあぶり出すことが出来ました。
無理やり選択
数式を確認するとは簡単にできました。
しかしVBAを使用するとあれほど選択をすることが出来なかったセルがいとも簡単に選択できます。
Sub 無理やり選択()
Range("J4").Select
End Sub
セルが選択できたので数式バーに入力されている数式が表示されています。
まとめ
今回の記事を作っていて思ったのは、シートの保護って結構強力で使いみちがありそうだなということです。
上手く設定してやれば機能を損なうことなく使用者の誤った操作を弾くことができそうです。