xlwingsで図形にマクロを登録したい 解決済
やりたいこと
- xlwingsで画像の「マクロ名の登録」に相当するコードを実装したい
- ※水色ハイライトの関数を図形に登録したい
- 図形をクリックした際にVBAの関数を実行するコードを教えていただけないでしょうか?
- xlwingsで実装が不可な場合、Excelファイル外からのアクセスで上記太文字を満たす手段を教えてもらえないでしょうか?
前提
- Excelアプリから操作はできず、xlwingsからのアクセスのみ編集可能
- 関数は既にExcel内にコードとして保存されている状態
- 図形はExcel内に保存されいてる状態
- 図形と関数の紐づきだけが無い
該当のソースコード / 試したこと
- ShapeオブジェクトにOnActionプロパティが無さそう(デバッガより確認)
-
shape.OnAction="関数名"
で代入はできるが、実際にExcelを開いたときマクロは登録されていない
import xlwings as xw
"""
>>> pip install xlwings --version 0.23.3
"""
path="ファイル名"
work_book = xw.Book(path)
for sheet in work_book.sheets:
for shape in sheet.shapes:
# ファイル名!Sheet1.isClicked してもNGだった
shape.OnAction = "Sheet1.isClicked"
work_book.save(path)
print("save")
公式ドキュメント
VBA Shapeオブジェクト
xlwings Shapeオブジェクト
https://docs.xlwings.org/ja/latest/api.html?highlight=shape#shape
0