エクセルのVisual Basic editor で書いたマクロを
他の人が開けないようにパスワードで保護するにはどうやったらいいんでしょうか?
誰か教えていただけませんか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

保護は VBのマクロのプロジェクト単位でかけます。



そのプロジェクトを選択し、右クリックでなんたらのプロジェクトプロパティを選択します。

それで 保護をクリックし、プロジェクトのロックに
チェックを入れて、それからパスワードを入れてください。
    • good
    • 2
この回答へのお礼

お礼のやりかたがわからず遅くなってしまいました。
どうも有り難うございました。

お礼日時:2003/05/03 18:25

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QエクセルVBAで標準モジュールを保護したい

エクセルのVBAマクロを使用したエクセルフィルがあります。
ユーザーは標準モジュールに記述した関数を使ってシートのマクロを変更してカストマイズできます。
ユーザーが標準モジュールを変更すると使用できなくなりますので、この標準モジュールだけをユーザーが変更できない、または見えないようにする方法をご教示いただけませんか。
よろしくお願いします。

Aベストアンサー

>ワークシートのマクロを変更でき、標準モジュールを保護すること

標準モジュールのマクロをアドインにして保護してしまえば、ブックのマクロと切り離すことが出来ます。

ブックのマクロでブックの起動・終了時にアドインの組み込みや開放もできますから、アドインファイルがアドインフォルダに存在していれば、アドインの組込みや開放を意識させないようにすることも出来ます。

Application.UserLibraryPath
Application.LibraryPath
で、アドインフォルダを取得できるので、どちらかにこっそりコピーする事も出来ますよ。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/sakuin/sakuin.html

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

マクロを作成したエクセルファイルがあるのですが、配布した数が1万ほどありまして、
今回、vbaプログラム自体を変更しなければいけなくなりました。

そこで、調べた結果vbaをvbaで編集することまではわかりました。
http://officetanaka.net/excel/vba/vbe/index.htm

しかし、配布したエクセルファイルのvbaProjectにパスワード保護をかけていまして、上手く動作しません。

なので、vbaでvbaProjectの保護を解除したいのですが、何かいい方法がありましたら、
ご指導の程よろしくお願いします。


※vbaProjectのパスワードはわかっています。

Aベストアンサー

最初に、リンク先のOfficeTanakaのサイトに書かれてあるものは、アマチュア用でもなければ、プロ用でもないもので、そのような手法が受け入れられるはずがありません。

>vbaでvbaProjectの保護を解除したいのです
Sendkeyでバスワードを送ることは可能ですが、それをしても、次の段階が出てきます。コード編集ではセキュリティ解除をしなければなりませんから、Resistry操作が出てきます。そうすると、アンチウィルスに引っかかってくる可能性も出てきます。だから、OfficeTanakaの話は現実的ではないことが、お分かりになるかと思います。そんなに簡単なことではないはずです。

1万コピー配布で、なぜ、その後の方策を立てなかったのか、と思います。
基本的には、アドインスタイルを取ります。アドインにするためには、特別に配布用のインストーラーが必要になってきますが、フリーで手に入ります。

また、アップデート用のブックを配布とはいっても、ワークシート上はすでにユーザーが手を付けているので、そのまま、ブック自体を配布することは出来ないはずです。新しいブックに、シートコピーをして新しいブックに移し替え、新しいブックにして使ってもらう方法を考えます。しかし、コントロールツールなどがあれば、それはすげ替えることが利きませんから、予め置いておくか、マクロで設けるしかありません。こちらとしては、この程度しかアイデアがありません。

最初に、リンク先のOfficeTanakaのサイトに書かれてあるものは、アマチュア用でもなければ、プロ用でもないもので、そのような手法が受け入れられるはずがありません。

>vbaでvbaProjectの保護を解除したいのです
Sendkeyでバスワードを送ることは可能ですが、それをしても、次の段階が出てきます。コード編集ではセキュリティ解除をしなければなりませんから、Resistry操作が出てきます。そうすると、アンチウィルスに引っかかってくる可能性も出てきます。だから、OfficeTanakaの話は現実的ではないことが、お...続きを読む

QExcelVBAでのプロジェクトのロックの解除の方法

ExcelのVBEでプロジェクトがロックされてプロジェクトが表示されません。
VBAProjectをダブルクリックしてもパスワードの画面がでません、”プロジェクロがロックされています”と表示されるだけです。
このロックをはずす方法を教えて下さい。

Aベストアンサー

#2の回答者です。

>通常のものは、VBAProjectをダブルクリックか、VBAProjectのプロパティーの選択でパスワード入力のダイアログボックスがでるという理解でよいでしょうか。

そのとおりです。Excel97以前のものになると手立てがなくなります。Excel97は、Excel97のみでしか、基本的には開けられません。もちろん、97以降は、特殊なロックをしていない限りは、完全に開けられないということはないはずです。

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

Qエクセルにおいて、シートの保護を解除する方法

エクセルのシートの保護を解除したいのですが、
方法がわかりません。

[ツール]→[保護]→[シート保護の解除]を選ぶと、
パスワードを聞かれます。
パスワードがわからないと解除できないのでしょうか?

今やっている業務は前任の方の引継ぎなのですが、
前任の方がパスワードを残さないまま
やめられたようで、データを編集できず
困っています。

パスワードを調べる方法、もしくは、
パスワードを使わずに保護を解除する方法は
ないものでしょうか。

どなたかご存知の方、宜しくお願いします。

参考までに
OSは、WindowsXP
エクセルは、2000を使用しています。

Aベストアンサー

解除はできないと思いますので、

[Ctrl]+[a]で全選択→別のシートにコピー

としてみてはどうでしょうか?

Q【Excel VBA】マクロでExcel自体を終了させたい

環境:WindowsXP、Excel2003

マクロでエクセルを終了(ブックを閉じて、アプリケーション自体も終了)させたいのですが、以下のコードではアプリケーションが閉じてくれません。

ThisWorkbook.Close
ExcObj.Quit
Application.Quit

どこか悪いところはありますでしょうか?

よろしくお願いします。

Aベストアンサー

普通に考えれば質問者のコードで上手くいきそうですが
hana-hana3さんの回答にもあるようにThisWorkBook.Closeでコード終了となりますので
Application.QuitをThisWorkBook.Closeの前にもってこないといけません。
Application.Quitはそれがあるプロシージャのコードが全て終わるまで
その実行を保留するちょと特別動作をします。

'-------------------------------------
 Application.Quit
 ThisWorkbook.Close
'-------------------------------------
 
 

Qパスワードのかかっているエクセルファイルを開くマクロ

こんにちは、

エクセルのファイルが40近くあります。それぞれ異なったパスワードで保存されています。すべてのファイル名とそのパスワードはわかっています。パスワードのかかっているエクセルファイルを開き、特定の部分(例えばA1のセル)の合計を求めるようなマクロを組もうと思っています。

パスワードのかかっているエクセルファイルを開くようなマクロを組むことは可能でしょうか?もしご存知の方がいましたら、ご教授いただければ助かります。よろしくお願いいたします。

Aベストアンサー

ヘルプくらいは見ましょう。

---------------------------------------------------------
Open メソッド
ブックを開きます。

構文
expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended,
Origin, Delimiter, Editable, Notify, Converter, AddToMRU)

expression 必ず指定します。対象となる Workbooks コレクションまたは RecentFile オブジェクトを表すオブジェクト式を指定します。

FileName 必ず指定します。文字列型 (String) の値を使用します。開くブックのファイル名を指定します。

(中略)
Password 省略可能です。バリアント型 (Variant) の値を使用します。パスワード保護されたブックを開くのに必要なパスワードを指定します。パスワードが必要な場合にこの引数を省略すると、パスワードの入力を促すダイアログ ボックスが表示されます。

ヘルプくらいは見ましょう。

---------------------------------------------------------
Open メソッド
ブックを開きます。

構文
expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended,
Origin, Delimiter, Editable, Notify, Converter, AddToMRU)

expression 必ず指定します。対象となる Workbooks コレクションまたは RecentFile オブジェクトを表すオブジェクト式を指定します。

FileName 必ず指定します。文字列型 (Str...続きを読む

QExcelのマクロの解除方法について教えてください

Excelのマクロを少しばかり使ってみたのですが、
解除(プログラム言語を全て消して)しても、
「マクロが使用されています」と、
ブックを開くときに表示されます。
マクロを完全解除する方法を教えていただけないでしょうか?
Excelのバージョンは2003です。
よろしくお願いします。

Aベストアンサー

標準モジュールが残っている場合がありますので以下の操作をお試しください。
(1)Alt+F11キー押下
(2)プロジェクトエクスプローラ(通常、左枠)で標準モジュールをダブルクリック
(3)Module1などと表示上で右クリック→Moduleの解放→「エクスポートしますか?」で→いいえ
(4)Alt+F4キー押下→ファイルを上書き保存

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

メニューバー「ツール」→VBAProjectのプロパティを選択して
パスワードの設定、解除をするのではなく、
この処理を割り当てたコマンドボタンなどで設定、
解除をさせたいのですが、可能でしょうか

ネットで調べてみましたが、
メニューバー「ツール」→VBAProjectのプロパティで
設定する方法しかみつけられませんでしたので
もし可能でしたら、どのように記述すればいいのか
お教えいただけないでしょうか
よろしくお願いします

Aベストアンサー

コードからパスワード設定を行う事は原理的には可能ですが、SendKeyを使う事になるので失敗する可能性もあります。

http://oshiete1.goo.ne.jp/qa1373378.html

QエクセルVBAでブック保護のUserInterfaceOnly:=Trueはダメ?

エクセル2000です。シート保護ならUserInterfaceOnly:=TrueでVBAでの変更は可能ですが、Book保護にもそういう機能はないのでしょうか?試しに、
Sub TEST1()
ActiveWorkbook.Protect Password:="merlion" , UserInterfaceOnly:=True
End Sub
とやってみましたが、エラーになってしまいました。(泣)

Aベストアンサー

merlionXX さん、こんにちは。

Wendy02です。

>ところでサンプルコードでUnprotectする直前にもProtectをしているのは何故ですか?

それ自体は、あくまでも、Protect をして、Unprotect をするというのは、サンプルで作ったままでコードをアップしただけです。

ただし、理由は、以下のような流れからです。

今回は、関係ないかもしれませんが、xlSheetVeryHidden を使う場合に、前回、考えたのは以下のような手順です。

開いた時に、一旦、 Window プロテクトを解除して
シートの Visible = xlSheetVeryHidden
Window プロテクトにしてから、そのブックを保存して、

それから、次に、もう一度、Window プロテクトを解除して、
 シートをVisible = xlSheetVisible
Window プロテクトをします。

ブックを閉じるときは、 Saved =True にさせてマクロ以外からは、保存させないようにします。ですから、BeforeSave イベントをCancel =True を置いておきます。

開いたままの状態では、保存をさせないのです。

Sheet のプロテクトの時に、
Application.EnableSelection = xlUnlockedCells

を使うわけですが、
画面キャプチャーやスナップショットなどで画面を取られないように、Win32 API の RegisterHotKeyで、フックさせないようにさせます。Excelでプロテクトを期待してもしょうがない、という人もいますが、ある程度のことは可能です。

もう、デジタルカメラをPC外で使われればしょうがないですが(^^;

merlionXX さん、こんにちは。

Wendy02です。

>ところでサンプルコードでUnprotectする直前にもProtectをしているのは何故ですか?

それ自体は、あくまでも、Protect をして、Unprotect をするというのは、サンプルで作ったままでコードをアップしただけです。

ただし、理由は、以下のような流れからです。

今回は、関係ないかもしれませんが、xlSheetVeryHidden を使う場合に、前回、考えたのは以下のような手順です。

開いた時に、一旦、 Window プロテクトを解除して
シートの Visible ...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報