• 締切済み

VBAパスワードを解除するマクロ

そういうマクロがあるのか無いのかも分からないので、教えてください。 VBAProjectにパスワードを設定しています。これはマクロを無効にしてエクセルを開いたときにコードが管理者以外に見えないようにしたいためです。マクロを有効にして開いたときに、ある処理を走らせたあと、マクロごと消去したいのですが、コンパイル時にVBAにパスワードがっかっているために、うまくいかないようなのです。 どなたかご存知あれば、教えてください。 よろしくお願いいたします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 ご質問の最終的な意図が明らかではありませんので、本来は、回答は控えるべきかもしれませんが、少し、書いておきます。 >実はダウンロードファイルにマクロを実装したいのです。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2259005 (http://okwave.jp/kotaeru.php3?q=2259005) でも書きましたが、それは、VBやDeveloper のディストリビューション・ウィザードやEXEPress を使ってインストールさせればよいと思います。つまり、それらの知識が必要だということです。 >マクロを無効にしてエクセルを開いたときにコードが管理者以外に見えないようにしたいためです。 マクロを無効にしても、パスワードを教えなければ、コードは見られません。 ただ、気にする人は、プライベート・デジタル署名を入れますね。入れても、気休め程度ですが。 ただ、もし著作権保護の立場からすれば、しょせん、一般のプロテクトは、パスワード・クラックされた終わりだし、また、クラックされても、クラックするような輩には分からないレベルのコーディング書くっていうのが、筋なんですね。 それと、単に、On Error Goto のエラートラップではなく、完全に、そのマクロの可能性のあるエラーがすべて見切っている時だけ、プロテクトをすべきだと私は思います。それ以下の状態では、プロテクトはしない、というのが、「VBAの暗黙のルール」だと思います。そうしないと、VB Editor が開かないので、何が原因なのか、ユーザーには解決できません。こういうのは、VBプログラマの人に多いような気がします。 どこかの人は、本家だとかなんとか、古いテクニックを使って、特殊なプロテクトをしているようですが、MSの考え方は、著作権を気にするなら「DLLか、COMにしなさい。出来ないなら、諦めなさい。」という論調です。だから、VBAのプロテクトを強化しなかったようですね。 近い将来、マクロはワークブック(データ)とは切り離しにはなるものの、そういう自爆型マクロというのは、今は、MS側では許さないように出来ています。やれば、できるような気がしますが、たぶん、アンチウィルスに確実に引っかかると思います。それは、古いバージョンのテクニックを使う、かつてマクロ・ウィルスとして存在していたものであり、ご質問の内容も、それに準ずるものですから、一般の掲示板では語られることのないものです。 その設計の方向性を変えるしかないと思います。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。 VBA Project の保護は、プログラムから一般の人には解除できません。 いくら調べても解決の方法は探せないでしょう。 SendKeys による方法がネットで紹介されているようですが、Excel の環境 はユーザー毎に違いますので、成功確率が低すぎて使いものにならないで しょう。 結論は、設計から再検討することをオススメします。 また、余計なお世話かもしれませんが、老婆心ながら。 何のためにパスワードで保護するのか? この意義を考えれば、簡単に解除できては困るのです。例え、ご自分の VBA Project であり、パスワードも知っている、悪意もない、一時的に保護解除 したいだけだ...としても、プログラムから VBA Project の保護を解除する 方法が公開されてしまえば、誰でも簡単に「保護解除ツール」が作れてしま うからです。 これが「いくら探しても情報が無い」理由です。 > マクロを有効にして開いたときに、ある処理を走らせたあと、マクロごと > 消去したいのですが... このマクロが Auto_Open や Workbook_Open にあるなら、ウイルスと誤解 されそうな動作ですよね... あなたに悪意は無いでしょうが、誤解する人は必ずでてきます。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ネットを探すと、VBAを使ってVBE画面を開いてSendkeyで制御するサンプルがあります。 VBAのパスワード制御はこのレベルでしか出来ないので、いつでも都合良く制御するのはかなり難しいかも知れません。 >マクロを有効にして開いたときに、ある処理を走らせたあと、マクロごと消去したいのですが コードをアドインで保持するのは駄目なのですか?

kohiro
質問者

補足

アドインのことですが、実はダウンロードファイルにマクロを実装したいのです。ユーザーがダウンロードで必要なファイルを取り出して、開いたときに必要な処理をする必要があり。。。

関連するQ&A

  • vbaでvbaProjectのパスワード解除する

    マクロを作成したエクセルファイルがあるのですが、配布した数が1万ほどありまして、 今回、vbaプログラム自体を変更しなければいけなくなりました。 そこで、調べた結果vbaをvbaで編集することまではわかりました。 http://officetanaka.net/excel/vba/vbe/index.htm しかし、配布したエクセルファイルのvbaProjectにパスワード保護をかけていまして、上手く動作しません。 なので、vbaでvbaProjectの保護を解除したいのですが、何かいい方法がありましたら、 ご指導の程よろしくお願いします。 ※vbaProjectのパスワードはわかっています。

  • VBA マクロ保護

    VBA マクロ保護 VBAProject 保護はツールにて保護パスワード設定しています! 私が作ったもので、コマンドボタンをクリックしたら指定された フォルダにコピー(例;Sheet1のみコピー)できるようにしています! そこのコピーのフォルダを開き、ブックを開いてみると シート保護はされていますが コードの表示にパスワード設定がなく、そのまま見えてしまいます。 そこで質問なのですが コードの表示を見れなくさせるために VBA記述でコピーするときにVBAProjectにパスワード設定させたいです。 ちなみにVBAProject本体には、パスワード設定しています。 どのようにすれば良いか?記述を教えてください!

  • EXCEL VBAのパスワード解除

    EXCELのマクロをVBAで作りました。コードにパスワードをかけて保存しました。今回マクロを修正することになったのですが、パスワードを忘れてしまって、開くことができなくなりました。どうにかしてパスワードを解除できないものでしょうか?よろしくお願いします。

  • Excel VBA で、マクロを実行するためのパスワード設定方法

    Excel VBA で、マクロを実行する時、ポップアップなどで、パスワードを要求するように設定し、パスワードを入力したら、続きのマクロを実行する方法を教えてください。

  • VBAプロジェクトのパスワード解除について

    VBAプロジェクトのパスワードを解除した後VBAプロジェクトにあるモジュールを削除するというコードを書きました。 解除まではできていますが、モジュールを解除するコードにくると保護されているというエラーが出て進めません。 いくつかのことを確認しましたが、解決に至らなかったので、ご教示いただけないでしょうか。 確認した内容は以下のとおりです。 (1)パスワード解除後にブレークポイントを設定して、VBAプロジェクトを触ってみましたが、モジュールは展開されず、パスワードも要求されません。 (2)パスワード解除後プログラムを強制終了して、解除したエクセルをダブルクリックして開き、VBAプロジェクトを触ると、パスワードは解除されていて、モジュールも展開されました。 (3)パスワード解除とモジュール削除を別々のプロシージャにして、パスワード解除をしてプロシージャを終わらせて、改めてモジュール削除のプロシージャを実行してみましたが、VBAプロジェクトが保護されていますと出て、モジュール削除のコードが実行できない。 VBAで処理するのは不可能であるなら、PowerShellとの組み合わせなどでできるようになるのでしょうか? とりあえずは、xlsmをxlsxで保存し直すことでモジュールを削除するという目的は達成しておりますが、上記の方法でもやってみたいのでご教示お願いします。

  • EXCEL vba でマクロにパスワードを設定できますか

    メニューバー「ツール」→VBAProjectのプロパティを選択して パスワードの設定、解除をするのではなく、 この処理を割り当てたコマンドボタンなどで設定、 解除をさせたいのですが、可能でしょうか ネットで調べてみましたが、 メニューバー「ツール」→VBAProjectのプロパティで 設定する方法しかみつけられませんでしたので もし可能でしたら、どのように記述すればいいのか お教えいただけないでしょうか よろしくお願いします

  • VBAで書き込みパスワードを解除して開く

    VBAでの作成経験が浅くわからないので、教えてください。 Excel2010のVBAを作成しております。 VBAで”ファイルを開く”ダイアログを表示し、ユーザが指定したファイルのパスワードの保護をマクロの中で解除してファイルを開きたいと思い作成しました。 myMB = Application.Dialogs(xlDialogOpen).Show(arg6:=myPassword) If myMB = False Then Exit Sub End If   ※myPasswordはユーザが開くファイルに使用するパスワード この方法ですと、パスワードを入れるダイアログが表示されてしまいます。 どうしたら、パスワードをユーザが入力することなく、マクロを実行することが できるのでしょうか?

  • マクロ vba

    エクセル マクロの記録で出来る処理が100だとしたら vbaで出来る(vbaでしか出来ない処理も含む)処理は1000くらいでしょうか?

  • Excel VBA で、パスワード設定方法を教えてください。

    Excel VBA を作成した時、パスワード設定して、マクロが見えないようにする方法を教えてください。 もし、説明してあるURL等ありましたら、教えてください。

  • マクロとVBAの違いは?

    最近officeのVBAを勉強してるのですが「マクロ」と「VBA」って何が違うのでしょうか? アクセスはマクロとVBA(VBE)が別れてるけど、 エクセルは「マクロの記録」でVBAコードが取得できますよね。 マクロとVBAは同じ意味なのか、違う意味なのか教えていただけますか?

専門家に質問してみよう