🎉
VBAでボタンにマクロを登録し直す
ファイルを渡したり、移動したり、名前を変えたりといったことをしたときにボタンに登録されているマクロのパス(ファイルのパス)がおかしくなる時があります。
そんな時、自身のファイル名からで登録し直すことで、元通り動くようにできました。
Dim workbookPath as String
workbookPath = "'" & ThisWorkbook.name &"'" ' ファイル名に半角スペースがあるときなどの対策
Dim ws as WorkSheet
Dim wsShape as Shape
Dim action as String
For Each ws in ThisWorkbook.Sheets
For Each wsShape in ws.Shapes
action = wsShape.OnAction
action = Mid(action, InStr(action, "!"))
wsShape.OnAction = workbookPath & action
Next wsShape
Next ws
Discussion