• ベストアンサー

モジュールシートの置換え等をExcelVBAでできるのでしょうか。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • jmh
  • ベストアンサー率23% (71/304)
回答No.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?) からは、セキュリティの設定を変更しないと できません。

takaandhiro
質問者

お礼

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

関連するQ&A