投稿日 | : 2006/06/02(Fri) 11:40 |
投稿者 | : ダンボ |
Eメール | : |
URL | : |
タイトル | : 新たな問題(解決不能?) |
YK さん、どうも有り難うございます。
Rmove-ImportにするかDeleteLines-InsertLinesにするか瞬時検討後、後者にしました。
理由:本来の目的を考えるとワークブックの開き直しはなんだか美しくない。
小問題点:Common.basの先頭にはAttribute文が付いている。そのまま読み込むとNG
対策:最後にDeleteLines 1をしても良いが、折角だからCommon.basの先頭行は配布日を記したコメント
行に置き換えておく。
Private Function MacroRewite(WB As Workbook, TS As Object)
With WB.VBProject.VBComponents("Common").CodeModule
.DeleteLines 1, .CountOfLines
.InsertLines 1, TS.ReadAll
End With
End Function
ところがですよ。解決不能な問題がありました。
配布したブックには他人にマクロを触られないようにVBProjectに保護を掛けてあるのです。
これを外さないとWith文のところでエラーになります。
ではVBProjectの保護を一時的に外すコーディングは...と考えてみると「あるのだろうけれどMSは教えな
い」
「それを許したら他人のマクロも上手に改竄できるから」
考えすぎですかね?>All
#いや、パスワードは何のためにあるのか。パスワードを指定すればVBProjectの保護を一時的に外す
メソッドがあるのではないか? 見あたりません...