プロが教える店舗&オフィスのセキュリティ対策術

マクロを使った計算表を作って他の人に利用してもらっています。

計算を進める際途中経過をH~Z列までを使って計算し、その結果をA~G列を表示しています。途中経過のH~Z列やA~G列の計算式は見せたくないため、非表示にしたのち保護してあります。利用者は図表をコピーして利用できるよう、コピーが可能になるようにコピー禁止はしておりません。

ところが計算シート全体を他のシートにコピペすると、隠したはずのH~Z列を含むすべての列およびA~G列の計算式がすべて表示されてしまいます。
有料・無料の保護ソフトを試しましたが、どれもうまく作動してくれません。

そこでVBを使えばうまくできるものかと考えました。VBは全く分かりませんが6.0の環境は整っています。

当面のやりたいことは、コピペをした際に保護が破られないだけのことなのですが、VBを使えばそれが可能か否かを教えていただけませんか。可能ならばコードもお教えいただければ大変ありがたいです。

よろしくお願いします。

質問者からの補足コメント

  • 1~6まで、種々のご指摘をいただきましてありがとうございます。

    ただ私がお聞きしたいのは、VBを使えばそのようなことができるのかどうかです。
    VBに取り組むべきかどうかを考えたいのです。

    よろしくお願いします。

      補足日時:2016/10/01 07:00

A 回答 (12件中11~12件)

No.10 追記



マクロ(VBA)を使えばいっぺんに式を変換することも出来ます。
    • good
    • 0

外野が失礼


AN10-11にスレ主さんは 誤解があるようです。
セル式に =関数(A1,B1,C1)として(必要なセル番地の値のみ関数に渡す)
標準モジュールに 関数(A,B,C) で、セル式の数値を受け取る、そして、セル式の計算式をコードで書けば、見えるシートの =関数 を見ても、参照セル番地が分かるだけで、VBAに書いた計算式は 見えないのだから、目的は達しているハズ・・・

VBにこだわっておられるようですが、VBでやるなら、標準モジュールに書いたその関数をVBでやるだけで、エクセルからVBに渡す手順が 面倒なだけ。かつ、
VBでやると、配布の時にインストール作業という、もっと面倒が増えますよ。

この辺が、エクセルは必要な部品一式(DLLなど)インクルードして、配布できますが、VBはコードだけで、必要DLLは 含まれませんから、インストールでDLLを相手のPCに移す面倒な手間が有りますよ。
    • good
    • 0
この回答へのお礼

2014itochan様

VBにこだわっている訳ではないのですが、それを使えば初期の目的が達せられるのかと思い、質問させていただきました。どうも見当違いのようでした。

一方市販のエクセルアドインを使用したソフトを見ると、シートの保護およびブックの保護がされていません。
ですから必要な計算は全部VBAの中でされているものと思われます。

皆様のおかげでだんだんやるべき方向が見えてきました。ありがとうございました。

お礼日時:2016/10/04 10:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!