Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5634 / 13645 ツリー ←次へ | 前へ→

【49719】プロジェクト保護と解除 もとあし 07/6/18(月) 16:07 質問[未読]
【49721】Re:プロジェクト保護と解除 もとあし 07/6/18(月) 17:00 質問[未読]
【49738】Re:プロジェクト保護と解除 もとあし 07/6/19(火) 9:04 質問[未読]
【49741】Re:プロジェクト保護と解除 ウッシ 07/6/19(火) 10:05 発言[未読]
【49744】Re:プロジェクト保護と解除 もとあし 07/6/19(火) 12:02 発言[未読]
【49742】Re:プロジェクト保護と解除 SAYA 07/6/19(火) 10:20 回答[未読]
【49745】Re:プロジェクト保護と解除 もとあし 07/6/19(火) 12:07 発言[未読]

【49719】プロジェクト保護と解除
質問  もとあし  - 07/6/18(月) 16:07 -

引用なし
パスワード
   いつも大変お世話になっています。ありがとうございます。

実は、マクロ付のエクセルを別のマクロ(.xla)で削除、追加、差替等をしたいのですが、
そのエクセルブックにはプロジェクト保護がされています。
またそのブックは、書類の様式の原本となっており、そのエクセルをいろいろな
会社の人間がコピーして、必要事項を記入し、自由な名前で保存しています。

そのいろいろな人が所有するエクセルのマクロをアドインで更新したいのです。

いろいろなチャレンジをしたのですが、どうしてもプロジェクト解除と再保護の
方法が分からないので、投稿しました。

よろしくお願いします。

'保護解除
Sub Prj_Rlse()
'特にここ(下)のインデックスをどうしたらいいのか分かりません。
With ActiveWorkbook.VBProject.VBE.Windows(1)
  .SetFocus
  SendKeys "%T"
  SendKeys "E"
  SendKeys "system" & "{ENTER}{ENTER}"
End With
ActiveWorkbook.VBProject.VBE.MainWindow.Visible = False
End Sub

'保護設定
Sub Prj_Regist()
 With ActiveWorkbook.VBProject.VBE.Windows(1)
     .SetFocus
     SendKeys "%TE^{TAB} {TAB}" & "system" & _
        "{TAB}" & "system" & "{TAB}{ENTER}", True
 End With
 ActiveWorkbook.VBProject.VBE.MainWindow.Visible = False
End Sub

【49721】Re:プロジェクト保護と解除
質問  もとあし  - 07/6/18(月) 17:00 -

引用なし
パスワード
   このすぐ後、
HTTP://homepage2.nifty.com/kmado/ke_m7.htm

の「マクロでVBEプロジェクトの保護をする」を見て、保護はできたように思います。
が、解除がなかなか出来ません。

Sub Prj_Protec()
  Dim BName
  Dim PassW
  
  BName = ActiveWorkbook.Name
  PassW = "system"
  
  With Workbooks(BName)
    .VBProject.VBComponents(1).CodeModule.CodePane.Window.Visible = True
    SendKeys "%TE^{TAB} {TAB}" & PassW & "{TAB}" & PassW & "{TAB}{ENTER}", True
  End With
End Sub

【49738】Re:プロジェクト保護と解除
質問  もとあし  - 07/6/19(火) 9:04 -

引用なし
パスワード
   みなさん、こんにちは。
なかなかお返事がいただけないので、自分で再度発言です。

いろいろなHPなど、その後もしらべていましたが、
パスワード解除のコードは基本的に公にするものではないのですね。
私の場合は、自分で設定したパスワードなので、
解除する際にそのパスワードをSendKeyで送ればいいのですが、
問題は、解除マクロのあるブックではないので、
VBE上で目的としないブックのプロジェクトに対して、マクロが作用してしまうのです。ActiveWorkbookを対象とする方法を教えていただければと思っていました。

これ自体も無理なのか、公にすることでないのでしたら、他の対策を考えます。
何度もすみません。よろしくお願いします。

【49741】Re:プロジェクト保護と解除
発言  ウッシ  - 07/6/19(火) 10:05 -

引用なし
パスワード
   こんにちは

どうしても、分かりません。

>マクロ付のエクセルを別のマクロ(.xla)で削除、追加、差替等をしたい
という事はそのアドインは都度配布するのですよね?

削除、追加、差替の対象となるマクロはそのアドインにセットしておいて、それを
実行するように決めておけばいいような気がするのですが?

【49742】Re:プロジェクト保護と解除
回答  SAYA  - 07/6/19(火) 10:20 -

引用なし
パスワード
   >このすぐ後、
>HTTP://homepage2.nifty.com/kmado/ke_m7.htm
>の「マクロでVBEプロジェクトの保護をする」を見て、保護はできたように思います。
>が、解除がなかなか出来ません。

紹介のページにある、以下はどうでしょう。
HTTP://www.vector.co.jp/soft/win95/business/se415128.html
ProtectメソッドとUnprotectメソッドで保護と解除は出来ました。

>またそのブックは、書類の様式の原本となっており、そのエクセルをいろいろな
>会社の人間がコピーして、必要事項を記入し、自由な名前で保存しています。
>そのいろいろな人が所有するエクセルのマクロをアドインで更新したいのです。

考えかたが難しいほうにむかっていませんか。
マクロを更新するのではなく、
更新したマクロのブックに、シートをコピーしたほうが簡単です。

【49744】Re:プロジェクト保護と解除
発言  もとあし  - 07/6/19(火) 12:02 -

引用なし
パスワード
   ウッシ さん、こんにちは。

お返事ありがとうございます。

>という事はそのアドインは都度配布するのですよね?
配布というか、アドインをサーバーに保存し、そのサーバーのバッチ処理?なのか
各端末がログインされたときにそのアドインをコピーしてくるようです。
(その辺の詳しい仕組みはわかりません。)

>削除、追加、差替の対象となるマクロはそのアドインにセットしておいて、それを
>実行するように決めておけばいいような気がするのですが?
アドインで処理できるマクロはアドインで行っているのですが、
Auto_Openなどそのブックに設定しておく必要のあるマクロがあるのです。
それに対する更新が必要なのです。

説明がヘタクソでごめんなさい。

【49745】Re:プロジェクト保護と解除
発言  もとあし  - 07/6/19(火) 12:07 -

引用なし
パスワード
   SAYA さん、こんにちは。

お返事ありがとうございます。

>HTTP://www.vector.co.jp/soft/win95/business/se415128.html
>ProtectメソッドとUnprotectメソッドで保護と解除は出来ました。
上記のHPは一度私も見たのですが、ダウンロードがちょっと不安だったのと、
アドインソフトみたいな仕様なのかな?コードは見れないのかな?と
思ってので、ダウンロードしませんでした。
見てみます。

>考えかたが難しいほうにむかっていませんか。
>マクロを更新するのではなく、
>更新したマクロのブックに、シートをコピーしたほうが簡単です。
これはまったく思い至りませんでした!考えてみます!
ありがとうございました!

5634 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free