🎉

VBAでボタンにマクロを登録し直す

2024/06/30に公開

ファイルを渡したり、移動したり、名前を変えたりといったことをしたときにボタンに登録されているマクロのパス(ファイルのパス)がおかしくなる時があります。
そんな時、自身のファイル名からで登録し直すことで、元通り動くようにできました。

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