よろしくお願いいたします。
MicrosoftOfficeに付属しているVBAというのは、パッケージソフトを開発する目的で存在しているのではないということは承知しているのですが、それでも、中小規模の事務所において、作業の効率化や人件費抑制に大きく貢献しているという事例はたくさんあると思います。
そして、少し検索してみると、特に会計方面や、労務管理方面などで、市販(店舗では販売していないまでも、ネット等で広く一般を対象に有償で公開されている、という意味)されているエクセルVBAで開発されたxlsmファイルを見つけることは難しくありません。
たしかに、「自分の部署で使うために作ったマクロだけど、せっかくだから必要な人に販売してお小遣いを稼ごう」という雰囲気のものもありますが、プロと自覚しているような開発者が本気で「市販に足る有用なソフトである」という自信のもと、販売されている例もたくさんありますし、「オンデマンドでのエクセルやアクセスVBA開発を承ります」と謳ってる企業も多く見つけることができます。
前置きが長くなりましたが、質問したいのは、こういう、「お金を取って販売しているVBA開発成果品って、どういうコピープロテクトをしているのか」ということです。
もっと言えば「VBA開発品で施せる最大のプロテクトの方法」はどういうものか、というのを教えていただきたいです。
「そのxlsmファイルがVBAでの機能定義の集合であって内包するシートのなかの1セルですら、編集されることはない」ということは少数派だと思います。ある程度は中のシートの値が編集されたりすることは前提になっているとして、だとするとかっちりとプロテクトしてしまうこともできないはずです。
私も、市販とまではいかないまでも、せっかく作ったVBAプログラムを安易にコピーされたくないというのがこの質問の動機です。
私が考えているのは、
- VBAコードの閲覧編集にパスワード保護をかける
- ブックをパスワード保護して、シートのほとんどを非表示にする
- VBA命令で、起動時にブック保護をするようにしているが、そのパスワードは、ある非表示シートの、非表示列に書いてある
- パスワードが書いてあるシートのパスワードもその非表示列に書いてあり、そのパスワードで行なう保護じたいはVBAに命令として書いてある
というものです。
VBAコードを閲覧するには、VBA用のパスワードを知る必要があるだけですが、シートやブックの保護は多重になっている、という方法です。
つまり、そのファイルを構成する全シートを見るには、ブックの保護を解除する必要があるのだけど、そのためのパスワードはブックの保護を解除しないと見られないシートに書いてあり、しかもそのシートの保護を解除してシートの非表示列を再表示しないとそのパスワードを見ることはできない、というものです。
どうでしょうか?
私の考えている方法は野暮ったい方法だとは思います。やはり、もっと強力で、スマートなプロテクト方法ってあるのでしょうか?
みなさま、自分の身に置き換えて考えていただければと思うのですが、自分が一生懸命作ったVBA開発ファイルを(本当に売れるかどうかは別として)広く有償で提供してみたいとするなら、コピーなどによる不正使用を防止して確実に適正な対価を得るべくできることってどんなことがあるでしょうか?
野暮ったいとしても、例えばパスワードを数百文字の全角テキストにするなどすれば、コピー使用防止にかなり有効と考えていいのでしょうか?

回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/12 06:38