プロが教える店舗&オフィスのセキュリティ対策術

 ExcelVBAにより、「VBAの内容を変更する」ことができるということを聞いたことがあります。それは本当に可能なのでしょうか。
 例えば、モジュールシートを含んだ「コピー元.xls」と「変更.xls」という2つのファイルがあるとして、変更.xlsのモジュールシートをコピー元.xlsのモジュールシートに置き換えることなどできるのでしょうか。それは、置き換え前のモジュールシートが含まれる変更.xlsにVBAを記述してもできるのでしょうか。
 もしできるのであれば、VBAの書き方をお教えいただけないでしょうか。よろしくお願い致します。

A 回答 (1件)

' 各コードモジュールの先頭にコメントを追加。


Public Sub CommentSample()
  Dim m As Object
  For Each m In ThisWorkbook.VBProject.VBComponents
    Call m.CodeModule.InsertLines(1, "' サンプル")
  Next m
End Sub

などと CodeModule を操作して、コードを読み取ったり変更したり
できます。
もっと不純なコードが書けると思います。だから(?)、
Excel 2002(XP?) からは、セキュリティの設定を変更しないと
できません。
    • good
    • 0
この回答へのお礼

VBProjectやVBComponents、CodeModuleなど知らない単語ばかりで難しかったですが、うまく思い通りのマクロが書けました。
ありがとうございました。
またよろしくお願いします。

お礼日時:2003/01/15 00:02

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