iEhohs DokuWiki

主にプログラミングなど情シス業務の備忘録です

ユーザ用ツール

サイト用ツール


vba:excel: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

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

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

スポンサーリンク
vba/excel/copy-macrosheet.txt · 最終更新: 2023/11/15 23:13 by Shohei Okuda