達人養成塾 小川です。こんにちは。
今日は、ある受講生からいただいたこんな質問へのご回答。
依頼された仕事で問題があり、返答に困っています。
ここで質問していい事なのか分かりませんが質問させてください。
業務効率化のため数年前に退社した方が作成したマクロに新機能追加を依頼されました。
手を入れようとしたところ、パスワードがかかっており、閲覧・編集も新しいモジュール挿入できないようになっていました。
ネットで調べたところバイナリエディタでDPBを書き換えれば編集・モジュール挿入できるとのことで、実行しパスワードを突破出来ました。
当然コピーしたほうで作業し、目的の機能を追加しテストしましたが、今のところ問題なさそうに動いています。
しかし、バイナリエディタでいじった影響でおかしな事になった場合、壊れたその時まで入力されたデータがないととても困ったことになります。
こまめにバックアップを取ればいいのかもしれませんが、その作業がずっと続くと考えると釈然としません。
かといって新機能がなければ効率の悪い作業を続けることになります。
ゼロから同じ機能を持ったもの作れればいいのですが、膨大な量かつ複雑怪奇でプログラム初心者の私では手に負えません。
社内では多少とはいえマクロを書けるのは私しかいないので相談する相手もいません。
将来的には新ファイルにデータを移行しゼロからマクロを作成しようと考えていますが、現時点では退社した方が作成したものを使用するしかなさそうです。
実務で使用するにあたり、バイナリ書き換えでどのような影響が出るのか全く知識がありません。
依頼者に判断を仰ぐとしてもどう説明するべきか今ひとつわからず、質問させていただきました。
答えられない類の質問かもしれませんのでその場合はそのようにお返事いただければありがたいです。
前提として書いておくと…。
エクセルVBAプログラムはのVisual Basic Editorからパスワードロックをかけて、パスワードを知っている人以外はモジュールの中身を見られないようにできます。
ただし、その仕組はすごいチープ。
ネットで調べればいくらでも方法が載っているので説明省略しますが、エクセルファイルをちょっと高機能なエディタで開き、その中身を書き換えれば、誰でもソースを閲覧・編集できるようになります。
で、質問主の方の懸念は:
というもの。
結論から書くと、安全です。たぶん。僕の知っている限り、通常のエクセルファイルと、壊れるリスクの程度は変わりません。
心配でしたら、新しいファイルを作り、モジュール、シートのすべてをそこにコピーしてください。
モジュールのコピーは、プロジェクトエクスプローラー内で、コピー元のモジュールをマウスで選択し、そのまま新しいファイルの上までドラッグするだけです。
ただし、バイナリエディタでいじったかどうかに限らず、電子データはいつ壊れてもおかしくないものです。
バックアップは、こまめに取るようにしてください。