そんなときは、コードを編集するマクロを書いてやればいいのです。
ここでは簡単な編集をメモっときます。
ヘルプを見るとわかるけど、プロシージャ作ったりなんかもできるみたい。
個人的にはコードをVBAで作っていくより、ファイル読み込ませるほうが確実で早いと思うんだけど。。。
あとは、対象ブックを探すロジックを入れるだけ。
'指定ブックのVBAコード編集する
Public Sub UpdateCode()
Dim path As String
Dim wb As Workbook
Dim tgt_mod As String
Dim in_path As String
'指定ブックのパス
path = "C:\WORK\Target.xls"
'追加したいモジュール名称
tgt_mod = "Module1"
'対象ブックを開く
Set wb = Application.Workbooks.Open(path)
With wb.VBProject.VBComponents(tgt_mod).CodeModule
'5行目に文字列を挿入する
.InsertLines 5, "msgbox cstr(5)"
'テキストファイルから追加する
in_path = "C:\WORK\input.bas"
.AddFromFile in_path
'文字列を追加する
.AddFromString ("'コメントを追加する")
'そのモジュール内のコードを削除する
.DeleteLines 1, .CountOfLines
End With
'対象ブックを保存して閉じる
wb.Save
wb.Close
Set wb = Nothing
End Sub
ただし、コード編集をしたいブックのVBAProjectがロックされてる場合はエラーになります。
ネットを色々調べてみたけど、どうやらVBAからVBAProjectのロック解除はできなさそう。
まぁできたらロックの意味あんまりないよね。
今度からは後々のことを考えて作ります。
※ブックのロック設定・解除はVBAからもできます。
0 件のコメント:
コメントを投稿