iEhohs DokuWiki

プログラミングや設定方法など、個人的なナレッジを残しておくWikiです。

ユーザ用ツール

サイト用ツール


excel-vba:copy-macrosheet

マクロが入ったシートを別ブックにコピーする

Dim macroName As String
Workbooks.Add
ThisWorkbook.ActiveSheet.Copy Before:=ActiveWorkbook.Worksheets(1)
For i = 1 To ActiveSheet.DrawingObjects.Count
    ActiveSheet.DrawingObjects(i).Select
    macroName = Selection.OnAction
    If InStr(macroName, "!") > 0 Then
        macroName = "'" & ActiveWorkbook.Name & "'!" & Mid(macroName, InStr(macroName, "!") + 1, Len(macroName))
        ActiveSheet.DrawingObjects(i).OnAction = macroName
    End If
Next i

別ブックにマクロ入りのシートを複製すると、シートに記録されたマクロも複製されます。

しかし、ボタンにマクロを登録している場合、元のブックを参照してしまいますのでマクロを登録する必要があるためこの処理を行います。

スポンサーリンク
excel-vba/copy-macrosheet.txt · 最終更新: 2024/11/03 16:21 by shimehitsu14