Excelで何かを作ったとき、その計算式やどういう仕組みでやっているのかを他の人に広めたくない場合があります。
これはケチなんではなくて、作成者がそれをどんなレベルで開示するかどうかは作成者が決められます。
所属している企業に知る権利もありますが、それ相当の対価を求めることもできますし、もし自分の気に入らない条件でなら、その作ったものを自分以外使わなくて結構、と判断するのも作成者です。その後になにかが起きるかもしれませんが、それは作成者が自ら最終的に決めたことなので、それ以上に周りは干渉することはできませんし、やろうと思えばいろいろな方法でさせないこともできます。
このことの是非は後でお話するとして、社外に教えない、自分以外に教えないようにする機能がExcelにはあるので、それを紹介します。
計算式はわかっちゃう
Excelは、普通いろいろな操作で計算式の中身を知ることができます。そのおかげで、他の人が作ったExcelでも少しの改造がだれでもできるのです。
例えば、セルをクリックして、数式バーを見れば数式が表示されています。
数式バーは非表示にできますが、その場合でも、セルをダブルクリックすれば、数式がセル内に表示されます。
セルをクリックしてF2キーを押してもセル内に数式を表示することができます。
また、FORMULATEXT関数を使えば、セル内の計算式を文字列として取り出すことができます。
これらの方法で見ることができる計算式を、すべて一括して見れなくする方法があります。
セルのロック
想像してもあまりたどり着きにくい操作なのですが、セルの書式設定のロックの中にある、「表示」で表示されなくする設定がセル単位でできます。ただし、これは設定した段階ではまだ設定されたのみで、表示しないという動作は実行されていません。
その後に校閲タブの中のシートの保護をすることで、シートに設定された表示しない設定をすべて動作させることができます。これはシート単位での動作になります。
1回の操作ではなく2段階の操作なのですね。これは、実は書き換えてほしくないセルに書き込めなくする、シート保護の操作と同じです。
シートの保護をすれば、計算式の参照元や参照先の分析なども全くできなくなります。
編集可能なセルにFORMULATEXT関数を入れ、読みだそうとしても、結果は#N/Aとなります。
VBAも見られたくない
シートの計算式だけではなくて、VBAも見られたくない場合もあるでしょう。
これも表示できない設定をすることができます。
VBEを開き、ツールメニューのVBAProjectのプロパティを開いて、保護タブで、プロジェクトを表示用にロックするのチェックを入れてパスワードを設定します。
この状態でブックを閉じて、再度開いてVBEを起動しようとするとパスワードを聞いてくるようになります。
構造を見らないことの是非
構造を見られないことは、作成者が決められます。強硬手段をとることまで(もちろん合法の範囲で)考えれば、何が何でも見せたくないものは、どんな方法であれ、見せない方法がたくさんあります。
今回紹介した方法は、正直、とても簡易的なものらしく、解析しようと思えば解析できちゃうらしいです。私は方法を知りませんが、そういう解析を専門とする業者の手にかかればいとも簡単に解析される方法、というのは覚えておきましょう。
私は普段やらないのですが、Excelの専門家ということでパスワードの解析を依頼させることがあります。もちろんはじめはやりませんとは言うのですが、それでも困ってますということで頼まれます。でも方法も知らないのでパスワードを何個か試して開きませんでしたと言って工数がかかった分だけ金額を頂戴するのですが、その後に別の業者に頼んで簡単なパスワードで空いたけど料金返してくれる?みたいなことを言われたことが、パスワード解析案件が3件中3件だったのでもう今は絶対にお引き受けしていません。
また、私であれば、Excelツールの動作を見れば、どんな動きをしているか、想像がついてしまいます。Excelで作成したものは、いわゆるリバースエンジニアリングも簡単にできてしまうのです。しかも、それはExcelでできてしまうことなので、実際に罪になるかと言えば、ならない方向のグレーな感じがします。
ということで、動作を見せないことは、Excelが利用できる人が多くなれば意味がなくなってくるものでもあります。
であれば、Excelシートで使われる計算式ははじめから共有財産と考えた方がいいのかもしれません。
しかし、このパスワード、積極的に利用した方がいいケースがあります。
実は私が過去にほぼ最後まで作成した案件を言いがかりをつけられて未納品になったことがあります。
その時、VBAおよび、計算式をロックしていなかったので、途中進捗報告で送ったものは動作できてしまったのですね。
あまり信頼関係ができていない状態のお取引先には、表示できないようにしたほうがいいと思います。
普通に考えれば、途中までのものを使っているのでしょうけど、完成品クオリティではないので何か起きてるかもしれませんね。
そんな時に使ってください。
最終的に解除されるかもしれないですけど、パスワード解除はかなり高い金額がかかるようなので、ある程度の抑制にはなると思います。
構造を見られなくしないために
最後にですが、これはマネージメントをする方にお願いしたいのですが、構造を見られなくされるような、そんな人間関係にしないことが一番大事なのではないかなと思います。
作成者が気持ちよく開示してくれて、退職時にはどんどん改造してもらってもいいですよと言ってもらえるくらいの関係でいてほしいです。
これは簡単なことではないことはよくわかっています。
作成者も一人一人の人間ですので、考えてることも違いますし、中にはどんなことをしても開示したくないという作成者もいるでしょうから、その時はその考えを尊重して、仮に将来改造しなければならないようなことがあるのであれば、それなりの運用でつかっていくことも大事だと思います。
Excelでツールを作るたびに、そんなもの作ってる暇があるなら売り上げを上げろとか、もっと違うことでやることあるだろ、なんていうのであれば、そのツールを使う資格はありません。
もしも業務にとって全くメリットがない、お客様の為にもなっていないツールばかり作っているのであれば、それはExcelツールを作ることが問題なのではなくて、もっと違うことが問題なのでその指導をしてください。
あと、パスワード解除を頼んで、数式を解析したとたんに、作成者に誰が使っているどのツールが解析されたと通知する仕組みの構造はVBAビギナーの私でも思いつくので、そういうものが仕掛けられているかもしれない、と思っておいてください。
コメント