- ベストアンサー
vbaでvbaProjectのパスワード解除する
- VBAを使用してvbaProjectのパスワード解除する方法を教えてください。
- 配布したエクセルファイルのvbaProjectに設定されたパスワードを解除する方法を教えてください。
- vbaプログラムを変更するために、vbaProjectの保護を解除する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
最初に、リンク先のOfficeTanakaのサイトに書かれてあるものは、アマチュア用でもなければ、プロ用でもないもので、そのような手法が受け入れられるはずがありません。 >vbaでvbaProjectの保護を解除したいのです Sendkeyでバスワードを送ることは可能ですが、それをしても、次の段階が出てきます。コード編集ではセキュリティ解除をしなければなりませんから、Resistry操作が出てきます。そうすると、アンチウィルスに引っかかってくる可能性も出てきます。だから、OfficeTanakaの話は現実的ではないことが、お分かりになるかと思います。そんなに簡単なことではないはずです。 1万コピー配布で、なぜ、その後の方策を立てなかったのか、と思います。 基本的には、アドインスタイルを取ります。アドインにするためには、特別に配布用のインストーラーが必要になってきますが、フリーで手に入ります。 また、アップデート用のブックを配布とはいっても、ワークシート上はすでにユーザーが手を付けているので、そのまま、ブック自体を配布することは出来ないはずです。新しいブックに、シートコピーをして新しいブックに移し替え、新しいブックにして使ってもらう方法を考えます。しかし、コントロールツールなどがあれば、それはすげ替えることが利きませんから、予め置いておくか、マクロで設けるしかありません。こちらとしては、この程度しかアイデアがありません。
その他の回答 (2)
- ki-aaa
- ベストアンサー率49% (105/213)
私だったらこうすると思う方法を書きます。 まず、修正されるブックをA、アップデートとのブックをUPと言う名前だったとします。 1 まず、UPを開いて、自分の名前が、UPかどうかを確認し、そうでなかったら実行をやめます。 2 アップデート済みの印が有ったら、実行をやめます。 3 次に、Aを開きます。 4 Aの内容(シート)をUPにコピー貼り付けします。 5 Aを閉じます。 6 Aの名前をA.xls.copyに変えます。 7 UPのシートのどこかに、アップデート済みの印をつけてセーブします。 8 アップデート済みの印を消します。 9 UPをAという名でセーブします。 10 UPを消すようメッセージを出して、終わります。 この一連の動作をマクロにして配布します。 Aのブックには、このマクロが残りますがそれは我慢してもらうしかないです。
- pp300a
- ベストアンサー率12% (11/87)
質問の意味がよくわかりません プログラムでプログラムを制御する という考えは賛同できません それってつまりマクロウィルスを肯定するようなものです そもそも 元の作成時 1万ものブックを作成したとは思いません 1つ作ってそれをコピーして1万にしたのではないのですか? 今回も1つ修正してそれを再配布すればいいのではないでしょうか? それとも違う意味なのですか?
補足
わかりにくくてすいません。 1万はおっしゃる通り、コピーされ使用されてる数です。 そもそも質問文には余計でした。 もちろん再配布は考えているのですが、既存で使用している分に関しても継続的に使用できるようにした方が、ユーザ側への負担が減るのでどうにかできないかと思い、今回質問させていただきました。