
マクロを作成したエクセルファイルがあるのですが、配布した数が1万ほどありまして、
今回、vbaプログラム自体を変更しなければいけなくなりました。
そこで、調べた結果vbaをvbaで編集することまではわかりました。
http://officetanaka.net/excel/vba/vbe/index.htm
しかし、配布したエクセルファイルのvbaProjectにパスワード保護をかけていまして、上手く動作しません。
なので、vbaでvbaProjectの保護を解除したいのですが、何かいい方法がありましたら、
ご指導の程よろしくお願いします。
※vbaProjectのパスワードはわかっています。
No.3ベストアンサー
- 回答日時:
最初に、リンク先のOfficeTanakaのサイトに書かれてあるものは、アマチュア用でもなければ、プロ用でもないもので、そのような手法が受け入れられるはずがありません。
>vbaでvbaProjectの保護を解除したいのです
Sendkeyでバスワードを送ることは可能ですが、それをしても、次の段階が出てきます。コード編集ではセキュリティ解除をしなければなりませんから、Resistry操作が出てきます。そうすると、アンチウィルスに引っかかってくる可能性も出てきます。だから、OfficeTanakaの話は現実的ではないことが、お分かりになるかと思います。そんなに簡単なことではないはずです。
1万コピー配布で、なぜ、その後の方策を立てなかったのか、と思います。
基本的には、アドインスタイルを取ります。アドインにするためには、特別に配布用のインストーラーが必要になってきますが、フリーで手に入ります。
また、アップデート用のブックを配布とはいっても、ワークシート上はすでにユーザーが手を付けているので、そのまま、ブック自体を配布することは出来ないはずです。新しいブックに、シートコピーをして新しいブックに移し替え、新しいブックにして使ってもらう方法を考えます。しかし、コントロールツールなどがあれば、それはすげ替えることが利きませんから、予め置いておくか、マクロで設けるしかありません。こちらとしては、この程度しかアイデアがありません。
No.2
- 回答日時:
私だったらこうすると思う方法を書きます。
まず、修正されるブックを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のブックには、このマクロが残りますがそれは我慢してもらうしかないです。
No.1
- 回答日時:
質問の意味がよくわかりません
プログラムでプログラムを制御する という考えは賛同できません
それってつまりマクロウィルスを肯定するようなものです
そもそも 元の作成時 1万ものブックを作成したとは思いません
1つ作ってそれをコピーして1万にしたのではないのですか?
今回も1つ修正してそれを再配布すればいいのではないでしょうか?
それとも違う意味なのですか?
この回答への補足
わかりにくくてすいません。
1万はおっしゃる通り、コピーされ使用されてる数です。
そもそも質問文には余計でした。
もちろん再配布は考えているのですが、既存で使用している分に関しても継続的に使用できるようにした方が、ユーザ側への負担が減るのでどうにかできないかと思い、今回質問させていただきました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelVBAでのプロジェクトのロックの解除の方法
Excel(エクセル)
-
VBAパスワードを解除するマクロ
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
VBScriptでエクセル VBProject
その他(プログラミング・Web制作)
-
6
マクロを消すマクロは不可能?
Excel(エクセル)
-
7
VBAプロジェクトのロック解除が出来ない
Excel(エクセル)
-
8
標準モジュールを削除したい。(VBA)
Access(アクセス)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
11
EXCEL VBAマクロ中断でデバッグ(コード閲覧)できないようにしたい
Visual Basic(VBA)
-
12
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
13
エクセルのVBAで自動的にVBE画面を出したい。
Excel(エクセル)
-
14
Excel2019 非表示モジュール内でコンパイルエラー
Excel(エクセル)
-
15
バックグラウンドのプロセスのエクセルを閉じる方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
ワイルドカード「*」を使うとう...
-
エクセルVBAが途中で止まります
-
別ブックをダイアログボックス...
-
VBAで別のブックにシートをコピ...
-
エクセル共有化のトラブル
-
VBAで別ブックのシートを指定し...
-
ACCESSでExcelにデータ出力、高...
-
【ExcelVBA】インデックスが有...
-
VBA コードを実行すると画面が...
-
VBA 実行時エラー 2147024893
-
Excel2007VBAファイルの表示に...
-
Book間の移動
-
【ExcelVBA】zip圧縮されたCSV...
-
VBS Bookを閉じるコード
-
複数シート名とブック名が一致...
-
エクセルVBAで読み取りパスワー...
-
VBA 別ブックからコピペしたい...
-
新しく開いたブックをアクティ...
-
現在開いているbook全てを対象...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のエクセルファイルとシー...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
[Excel]ADODBでNull変換されて...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excelのマクロコードについて教...
-
Excel にて、 リストボックスの...
-
【ExcelVBA】インデックスが有...
-
VBA アプリケーション定義また...
-
【Excel VBA】表の列の値毎に分...
おすすめ情報