VBAのモジュールのコピー

VBA

ブック間でモジュールのコピーが必要になった。
覚書。

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を操作する[応用サンプル]

コメント

タイトルとURLをコピーしました