ブック間でモジュールのコピーが必要になった。
覚書。
Excelのオプション設定
「VBA プロジェクト オブジェクト モデルへのアクセスを信頼する」にチェックを入れる。
コード
Sub CopyModule()
Dim Code As String
Dim mName As String
Dim wb1 As Workbook
Dim wb2 As Workbook
Set wb1 = Workbooks("Book1")
Set wb2 = Workbooks("Book2")
mName = "Module1"
With wb1.VBProject.VBComponents(mName).CodeModule
Code = .Lines(.CountOfDeclarationLines + 1, _
.CountOfLines - .CountOfDeclarationLines + 1)
End With
wb2.VBProject.VBComponents.Add(1).CodeModule.AddFromString Code
End Sub
Book1 の Module1 を Book2に コピーしする。
ただし、宣言セクション部はコピー対象から除外している。
参考サイト
Office TANAKA - VBAでVBEを操作する[応用サンプル]
コメント